アンチパターンVim

あなたがフローの状態にあるとき、Vimはコード、詩、散文を書いているかどうかにかかわらず、編集を真剣にスピードアップします。 ただし、テキストエディターには学習曲線が急すぎるため、エディターをマスターしたばかりの頃から悪い習慣を維持するのは非常に簡単です。 Vimは作業を非常に高速化するので、気付かないこともあるため、根絶することは特に困難です。 しかし、それは価値があります。 最も一般的なアンチパターンのいくつかをリストします。



1行移動



2行以上ジャンプする必要がある場合、 j



またはk



キーを使用して1行に沿って移動するのは非効率的です。 Vimで垂直移動するには多くの方法があります 。 最も便利なのは、段落ジャンプと画面ジャンプです。 それは、あなたがどれだけ遠く、どのくらい正確に動く必要があるかに依存します。





どこに行く必要があるかが正確にわかっている場合は、検索でナビゲーションを使用できます: /



で前方に検索し、戻る- ?







前の場所に戻ることも常に役立ちます。2つの引用符またはgi



を使用すると、テキストを入力した最後の場所に戻ることができます。 必要に応じて、 g;



を使用してテキストが入力されたすべての場所間を移動することもできg;



およびg,







単一文字の動き



同様に、 t



キーとf



キーがある場合、 h



キーとl



キーを使用して一度に1文字ずつ移動することは、多くの場合時間の無駄です。





キーw



W



b



B



e



およびE



使用して単語を移動することも適切です。 ここでは検索ナビゲーションが便利です。 テキストをコピー、削除、および検索結果の前後に変更できることを忘れないでください。

y/search<Enter>

y?search<Enter>

d/search<Enter>

d?search<Enter>

c/search<Enter>

c?search<Enter>




カーソルの下の単語を検索する



入力やコピー/貼り付けを煩わせずに、 *



または#



押してください。 これらのホットキーをマスターすると、作業がどれほど速くなるかは驚くべきことです。



削除して貼り付け



挿入モードに移行してテキストを置き換えるためにテキストを削除する必要はありません。



d2wi







c



キーをより速く、より正確に使用しc







c2w







そのため、操作全体がドット( .



)で繰り返し可能になります。



矢印キーを使用する



Vimでは、矢印キーを使用して通常モードと挿入モードで移動できますが、ナビゲーションにhjkl



を使用することに慣れている場合は、Vimセッション全体で指がキーボード中央にあるため、矢印は既に少し不器用に見えますタッチタイピング。 HomeキーとEndキーは似ています。ほとんどのエディターと同様に機能しますが、 ^



$



同等物$



近い場合に使用する特別な理由はありません。



したがって、矢印キーを少なくとも一時的に無効にして離すことをお勧めします。



noremap <Up> <nop>

noremap <Down> <nop>

noremap <Left> <nop>

noremap <Right> <nop>








中央キーを使用したブラインドタイピングは、速度を向上させるだけでなく、手首をキーボードの前に置いて移動しすぎないため、気分が良くなり、一部の人がトンネル症候群から身を守るのに役立ちます



挿入モードで移動する



中心線でのブラインドタイピングのもう1つの利点は、挿入モードで移動する習慣を取り除くことです。これには通常モードが設計されています。 どこかに移動する必要があるとすぐに、通常モードに切り替え、より効率的に移動します。 また、貼り付け操作をよりアトミックにし、したがって繰り返しに便利になります。



Escを押す



現代のキーボードのエスケープキーは、ビルジョイがviを設計したときのキーボードよりも中央列からはるかに離れています。 通常、EscキーをCtrl+[



必要はありませんCtrl+[



ずっと近く、より便利に、習慣をかなりすばやく変更できます。 オプションとして、Escのオペレーティングシステムでのマッチングを、かなり役に立たないCaps Lockキー、またはjj



などの異常な組み合わせと見なすことができます。 これは少し過激な提案ですが、多くの人にとってうまく機能します。



inoremap jj <Esc>







行の先頭または末尾に移動してから、挿入します



I



A



使用しますA



さらに、同じ操作が必要になる可能性のある他の行に対してアクションを繰り返し可能にします。



挿入モードに入り、新しい行を作成します



o



およびO



を使用して、新しい行をそれぞれ下側と上側に作成し、同時に挿入モードに入ります。



挿入モードに入り、テキストを削除します



これはかなり明白な矛盾です。 代わりに、テキストに移動し、適切なモーションまたはテキストオブジェクトでd



を使用して、テキストを削除します。 繰り返しますが、このアクションは繰り返し可能であり、バックスペースを保持していないことを意味します。 一般に、Vimでキーを押し続けると、おそらくより高速な方法があります。



コマンドまたは検索を繰り返す



コマンドの場合は@:



、検索の場合はn / Nと入力するだけです。 Vimは最後の検索を忘れません。 これが最後のコマンドまたは検索ではなかったが、間違いなく履歴にある場合は、 q:



またはq/



入力して、リストで見つけてEnterを押します。



代替品



最後の置換の現在の行で繰り返すには&



を入力します。 g&



入力して、すべての行でそれを繰り返すことができます。



マクロリコール



@@



と入力するだけです。



実際、これらは、プラグインをインストールしたり、キーを大幅に再割り当てしたりせずに、エディターでの作業の速度と全体的な効率を高める一般的な方法のほんの一部です。 Vimのヒントについてwikiも参照してください。他にも非常に便利な例がいくつかあります。



All Articles