プログラマーにとって理想的なキーボードレイアウトを計算する方法は?


8

プログラミング用の新しいキーボードレイアウトを作成することを考えています。現在、私はほとんどHTML、JavaScript / jQuery / CoffeeScript、CSS / LESS / SASSでプログラミングしていますが、シェルスクリプトとRegExをすぐに、おそらくLUA、C ++、およびJavaを数年で使用するかもしれません。鍵の配置を科学的に証明したい。私はアイデア/要件を持っています、いくつかは私自身で発明しました、いくつかは他から取られたまたは派生しました:

  • ほとんどすべてのキーを再配置できます
    • RETURN左SHIFT左CONTROLスペースバー、およびTABはそのままにしておく必要がありますが、数字、記号、および移動キーを含む他のすべては移動可能です
    • 休暇に最適かもしれませんzxcv&perhhaps Sを伴う一般的なアンドゥ/切り取り/コピー/貼り付け/保存の習慣に、場所に滞在する:)
    • DELETEキーは、CAPS LOCKがある場所に移動する可能性があります:)
    • (){} [] <>のように括弧を隣り合わせにしておくことはほとんどありません。下記参照
  • IMHOがキー使用カウントする唯一の正確な方法は、ファイルのキーカウントではなく、キーロギングによるものです。
    • 「プログラミング」の多くは、メールの送信、フォーラムへの投稿、Twitter、バグ報告、ウェブサーフィンなどです。
    • キーボードの使い方の多くは「動き」だと思います。フィールド間のタブ移動、ページダウン、カーソルの移動など。これらはファイル出力ではキャプチャされません。
    • 多くのエディターはオートコンプリートとマクロを使用しているため、close-deliminators:)}]>はオープナーほど頻繁に入力されない場合があるため、キーロギングと解析ファイルではなく正確になります。

だから私の質問:

  1. 自分で別のファイルを送信しない限りファイルをアップロードしない、安全なフリー/オープンソースソフトウェアキーロガーとは何ですか?セキュリティのためだけでなく、私の分析のIMHOをスローする可能性があるため、ログイン名とパスワードを収集しない方がいいと思います。
  2. 単一およびペアのキーカウントをダイジェストするためにクライアント側で使用できるプログラムは何ですか?または、どのように作成するのが最適ですか?
  3. 助けてくれるボランティアを見つけるのに最適な場所はどこですか?

これまでの最高の研究:http : //www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

&ウィキペディア:Keyboard_layout#Non-QWERTY_keyboards_for_Latin_scripts

TIA!


興味深い質問ですが、私の質問の1つを提案させてください。完全に異なる何かのために何十年もの間使用してきた、千鳥状のチョコレートバーレイアウトを放棄した方がいいですか。
Ignacio Vazquez-Abrams

Ignacioは、$ 300USDでKinesisのContouredキーボードのようなまったく新しいレイアウトに切り替えるつもりですか?いいえ、通常の店で5〜20ドルで購入できる既存の安価なキーボードのキーを再マッピングするだけです。
tomByrer 2012

標準のQWERTY(またはその他の)キーボードに慣れている場合は、新しいレイアウトを学習するよりも、それを使用する方が効率的です。特に、レイアウトがカスタマイズされていない他のコンピューターを定期的に使用する場合。
ボブ

1
ちなみに、返信を受け取るには、たとえば@tomByrerでpingする必要があります。
slhck

2
私がする最善のこと<>{}[]は自分のキーを与える(そして現在シフトを必要とする他のキー)ことだと思います-自分自身をプログラマーとは思っていませんが、bashスクリプトを作成するときにそれが最も厄介なことです。
evilsoup 2013年

回答:


2

WhatPulseのようなプログラムを使用して、どのキーが何回ヒットしたかを記録します。

主要な周波数をまとめる方法についてFreeNode IRCネットワークに質問した後、ユーザーはこれに私を導きました:

  1. プログラムなどのテキストを取得してコピーします。
  2. 行くhttp://type.trmnl.org/
  3. ボタンの下で、「クリップボードの内容を貼り付けて自動起動」のチェックを外してください
  4. 次に、プログラムをテキストボックスに貼り付けます。
  5. Cntrl + Shift + Kを押すと、コンソールが開きます。
  6. 入力しcount_digraphs()てEnterキーを押します。

結果は次のように読み取られます。"ar" 7 17 10 "ra"つまり、「ar」が7回押され、「ra」が10回押され、「ar」と「ra」が一緒に17回押されたことを意味します。


「追加オプション:キーストロークの頻度を記録-WhatPulseバージョン1.7で導入され、これにより、押した各キーの数を追跡できます。」whatpulse.org/wiki/Program_Settings_Tab_2よろしくお願いします@ekaj!私も調べてみます!
tomByrer 2012

これは、これまでより侵入的なキーロガーには及ばない最高のソリューションだと思います。クロスプラットフォームおよびXML / HTML出力であることは幸運です。不足しているのは、バイグラム/ダイグラム(2つの隣接する要素のシーケンス)のサポートだけです。理由:英語では、「彼」と「th」が一緒に一般的であるだけでなく、多くのプログラミング言語(C ++、JavaScript、CSSなど)でも「; ENTER」が一緒に入力されることがよくあります。したがって、これを可能にするWhatPulseクローンがある場合は、それが最適です。その間、私は彼らのフォーラムに提案を投稿します。
tomByrer 2012

1
@tomBryerがあなたに代わって答えを更新しようとしました、それが役に立てば幸いです..そして、注意してください、IEやChromeではなく、FFでのみ機能させることができました。理由は不明です。
cutrightjm

はい、それはいくつかの点で役立ちます!ソースコード:「「残念ながら、このアプリはIEでは動作しません。」」; IEには奇妙なJS構文がある場合があります。
tomByrer 2012

4

エディターでの移動用のキーは、QWERTYでの効率的な使用にできるだけ適合するように調整されていることが多いため、キーのレイアウトを変更して、すべての最適な配置を行う場合は、キーを再マップする必要があります。たとえばVimでは、HJKLボタンはQWERTYでの理由で使用され、キーマップが変更された後、おそらく同じ場所に再マップする必要があります。

つまり、動きや編集キーを追跡し、それを新しいレイアウトの基礎として使用することはあまり役に立ちません。なぜなら、それらは簡単に再構成可能であるためです(ソルトに値するすべてのエディターで、そしてプログラマーの話をしているため)。レイアウト(VimまたはEmacsについて話している可能性が最も高い)、リテラルキーの配置に干渉することはなく、既に最適化されています(ここでも、メモ帳については話していません)。

あなたは、特にプログラマー ** imho **にとって、生産性を低下させる効率の悪い方法である問題を解決しようとしています。ツールについてさらに学ぶだけでも、はるかに大きな効果があります(もう一度:多分Vim / Emacs)。プログラミング時に実際に文字を書き込むのに費やされる時間が少なくなり、自動補完、自動タグ付け、自動インデント、クイック関数定義のルックアップなどにより多くの(しかしより効率的な)時間を費やすことがわかります。キーこれらすべてを実行すること、効率を可能にするためにすでに適応されており、大幅なスピードブーストは、親しみやすさを伴います。したがって、生産性を向上させるためにキーボードのレイアウトを変えること、比較的破壊的であると言えます。QWERTY運動の。レイアウトを切り替える人がDvorakに費やす時間と同じ分析トレーニング時間がQWERTYに費やされた場合、速度の向上にも気付くでしょう。スピードには明示的なトレーニングが伴います。

あなたがコピーライター/翻訳者/著者などである場合、実際にキーの文字通りの意味で作業を行う誰かは、別のレイアウトが役立つかもしれません。プログラマにとって、最良のヒントは、少なくとも英語のキーボードレイアウトを取得することです。プログラミングイディオムはこれらとそのキー配置によって形成されています(私のローカルキーレイアウトで@$[]{}~は、すべてAltGrの背後にあり、これは非常に最適ではありません)。

tldr: Dvorak / Colemak / [次の「スライスされたパン以来の最良のもの」](間違いなく)は、特定の言語(多くの場合、英語)で流れるテキスト大量に入力する人だけの問題を解決します。プログラミングでは、必要なキーはリテラル言語と同じ制限を受けていないため、その目的のために既に最適化されています(これは「できるだけ速く書き込む」だけではなく、論理演算に基づいて構築されています。参照) Vim)。私は、代替レイアウトの学習に費やした時間と、間違いなく何度も何度も発生する混乱は、ほとんどの場合間違いなく努力に値しないと信じています(あなた自身の混乱だけでなく、最後に使用したのと同じ端末に座っている他の人が投げるでしょう)プログラマーのものも含めて)


Vimについてのあなたの洞察を@ Daniel-Anderssonに感謝します。一部の編集者が移動キーの再マッピングを許可していることを比較検討することは役に立ちます!私のツールについてもっと学ぶ必要があります。しかし、私は多くのツールを使ってたくさんの編集をしています。オンラインエディターとテキストボックス:フォーラム(ここのように;)、要旨、jsFiddle、GMail、Facebook、Twitter(@をシフト以外のクローズキーにしないでください)...&Inkscape、SynthMaker、Liveなどの他のエディターなどショートカットを
キーマッピングで
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.