(jp) =
このブログ投稿は、プログラミング中にキー バインディングを使用する方法について考えてもらうことを目的としています。 私がキーバインディングを割り当てるために使用するいくつかのテクニック、それらを記憶する方法、およびそれらを効率的に使用する方法について読むことができます. しかし、先に進む前に、なぜキー バインディングに時間を費やす価値があるのかを説明する必要があります。
# 鍵の必要性
この主張を裏付ける心理学的研究を指摘することはできません。私自身の経験と常識に過ぎません。 コーディングをするときは、マウスの使用をできるだけ少なくするのが良いことです。 マウスをつかむために手を動かさないので、時間を節約できます。 また、入力デバイスとしてキーボードとマウスの使用を切り替える必要もありません。
これらの小さなことは、プロのプログラマーとしてのスキルを大幅に向上させる力を持っていると信じています. できるだけ頻繁にキーボードの使い方を学ぶために時間をかけることで、多くの成果を上げてきました。 私はまだ最適なセットアップを探していますが、いくつかの考えやテクニックを共有することができます. 知っておくべき最も重要なことは、キー割り当ては個人の好みの問題だということです。 したがって、これらの次の点を法則として捉えるのではなく、自分の状況に適用してください。
キーバインドは個人的な好みです。
# 修飾子の意味
キーボードにはいくつかの修飾キーがあり、他のキーを押したときの動作を変更できます。 昔は、これらのキーは実際にはキーボードに配線されていて、コンピューターに送信される電子ビットを変更していました。 現代においても、それらの本来の意味が何であったかを見てみるのは良いことです。 各修飾キーの正式な定義を定義するのに役立ち、どのキーの組み合わせがどのアクションに属しているかを思い出すことができました。
各修飾キーに個人的な意味を定義し、それに固執します。
# メタ/コマンド (⌘)
コマンドを「実行」するときにこのキーを使用します。 基本的に、アプリケーションのメニューから可能なことのほとんど。
# オプション/Alt (⌥)
Alt は「代替」の略で、別のキーの組み合わせの動作を変更します。 このキーは、別のキー バインドの関連アクションに使用します。
# シフト (⇧)
シフトには二重の意味があります。 まず、OS のデフォルトの動作であるため、選択に使用されます。 第二に、アクションを逆にするためにもよく使用されます。
私は最大 2 つの修飾キーを好みます。より複雑な組み合わせが必要な場合は、 ダブルキーバインド. ただし、1 つの例外があります。Shift (⇧) を他の修飾キーと組み合わせて使用すると、アクションを元に戻すことができます。
最大 2 つの修飾キーを優先するか、2 つのキー バインディングを使用します。
# コントロール/Ctrl (^)
テキストおよびコード関連の操作にはコントロール キーを使用します。 カーソルの移動、選択範囲の操作、線の操作などのアクション。Control キーを正式に定義するのは難しいと思いますが、ほとんどの場合、その使用法は明らかです。
Windows ユーザーへの注意: Control キーは、Meta (Windows) キーと比較してより多く使用されます。 つまり、おそらく2つの定義を切り替えたり、メタキーを捨てたりしたいと思うでしょう。 これは良い考えのように思えるかもしれませんが、ワークフローにメタ キーを追加することは、可用性に別の修飾キーを追加するため、良いことです。
# 関数 (fn)
デスクトップ キーボードではファンクション キーにアクセスできないことが多いため、このキーには依存しないことにしました。 ページアップやページダウンなどのいくつかのエッジケースのみを例外とします。
# 学ぶ
私自身の定義を念頭に置くと、キー バインディングの定義を開始するのは簡単です。 それらを覚えるには練習が必要ですが。 すべてのキー バインドを一度に割り当てるのではなく、必要に応じてゆっくりと追加することをお勧めします。
必要なときに新しいキー バインドを割り当てます。
オペレーティング システム (OS) のキー バインディングをオーバーライドしないことにしました。 のようなもの copy
、 paste
、 select all
また quit
オーバーライドされることはありません。 ただし、IDE またはエディターによって提供されるキー バインドの既定値は変更される場合があります。 私のように Sublime Text を使用している場合は、慣れ親しんだデフォルト設定を学習したことがあるでしょう。 数年前に PHPStorm に切り替えたとき、私は Sublime で知っていたキー バインディングのいくつかを保持することにしました。
次のような OS レベルのキー バインディングを変更する必要はありません。
copy
またselect all
.
今でも時々キー割り当てを変えています。 特に定義リストを思いついたとき。 新しいキー バインドを学習するときに役立つと思うことの 1 つは、古いキー バインドを無効にすることです。 PHPStorm のような IDE では、同じアクションに複数の組み合わせを追加できます。 古い組み合わせを使用しているときは、すぐに気付くことを好みます。 これにより、私はより速く学ぶことができます。
解除したいキーバインドを削除します。
さらに、状況に陥ったときに、すぐにマウスをつかまないようにしています。 問題を考え、やりたいことを定義しようとします。 ほとんどの場合、上記の定義リストのおかげで、どのキーの組み合わせを押すべきかを思い出すことができます。 記憶が曖昧なときは、素晴らしいキー バインディング管理機能を備えた IDE で作業できて幸運です。正しい組み合わせを簡単に見つけることができます。
パニックになったときにマウスをつかまないでください。
キーマップは非常に個人的なファイルであり、ワークフローに最適な形でゆっくりと成長します。 キーマップのバックアップを別の場所に保存することをお勧めします。GitHub が適しています。 これが私のものです。
キーマップをバージョン管理にチェックインします。
# 私自身の例のいくつか
-
⌘ p
ファイルを検索 -
⌘ ⇧ p
最近のファイルを検索 -
⌘ ⌥ p
ファイル内のシンボルを検索 -
⌘ ⌥ space
候補を表示 -
⌘ ⌥ enter
宣言に移動 -
^ ⌥ →
camelHops で右に移動 -
^ ⌥ ←
camelHops で左に移動 -
⌥ ↑
カーソルの段落を上に移動 -
⌥ ↓
カーソルの段落を下に移動 -
⇧ ⌥ ↑
選択範囲を拡張 -
⇧ ⌥ ↓
選択範囲を縮小
# 最後に
私は何年にもわたってキーバインディングに恋をしてきました。 基本的なナビゲーションには今でもマウスを使用していますが、コーディングを始めると、できるだけ使用しないようにしています。 この方が働きやすいと思います。 マウスに頻繁に切り替えないことで時間を稼げるだけではありません。 また、脳への認知的負荷が軽減されることもわかりました。つまり、コーディングにより集中できるようになりました。
これは小さなことのように思えるかもしれませんが、プロのプログラマーとして、これらの小さなことを 1 日に何度も何度も行っています。 これらの領域とスキルを最適化するために時間を割く価値はあります。それらが私をより優れたプログラマーにしてくれます。
認知負荷についてもっと読みたいですか? 以前のブログ投稿で、フォントとビジュアルについて書きました。 まだ質問がありますか? 私にメールを送ってください!