あなたがフローの状態にあるとき、Vimはコード、詩、散文を書いているかどうかにかかわらず、編集を真剣にスピードアップします。 ただし、テキストエディターには学習曲線が急すぎるため、エディターをマスターしたばかりの頃から悪い習慣を維持するのは非常に簡単です。 Vimは作業を非常に高速化するので、気付かないこともあるため、根絶することは特に困難です。 しかし、それは価値があります。 最も一般的なアンチパターンのいくつかをリストします。
1行移動
2行以上ジャンプする必要がある場合、
jまたは
kキーを使用して1行に沿って移動するのは非効率的です。 Vimで
垂直に
移動するには多くの
方法があり
ます 。 最も便利なのは、段落ジャンプと画面ジャンプです。 それは、あなたがどれだけ遠く、どのくらい正確に動く必要があるかに依存します。
{ -前の段落またはコードブロックの先頭に移動します。
} -次の段落またはコードブロックの最後に移動します。
Ctrl+F -1画面先に進みます。
Ctrl+B -1画面戻ります。
どこに行く必要があるかが正確にわかっている場合は、検索でナビゲーションを使用できます:
/で前方に検索し、戻る-
? 。
前の場所に戻ることも常に役立ちます。2つの引用符または
giを使用すると、テキストを入力した最後の場所に戻ることができます。 必要に応じて、
g;を使用してテキストが入力されたすべての場所間を移動することもでき
g; および
g,単一文字の動き
同様に、
tキーと
fキーがある場合、
hキーと
lキーを使用して一度に1文字ずつ移動することは、多くの場合時間の無駄です。
t<char> -次の文字が表示されるまで前方に移動します。
f<char> -次の文字が現れるまで前方に移動します。
T<char> -前に出現した文字に戻ります。
F<char> -前に出現した文字を後方に移動します。
キー
w 、
W 、
b 、
B 、
eおよび
E使用して単語を移動することも適切です。 ここでは検索ナビゲーションが便利です。
テキストをコピー、削除、および検索結果の前後に
変更できることを忘れないでください。
y/search<Enter>
y?search<Enter>
d/search<Enter>
d?search<Enter>
c/search<Enter>
c?search<Enter>
カーソルの下の単語を検索する
入力やコピー/貼り付けを煩わせずに、
*または
#押してください。 これらのホットキーをマスターすると、作業がどれほど速くなるかは驚くべきことです。
削除して貼り付け
挿入モードに移行してテキストを置き換えるためにテキストを削除する必要はありません。
d2wicキーをより速く、より正確に使用し
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も参照してください。他にも非常に便利な例がいくつかあります。