ホームページ  >  記事  >  運用・保守  >  Vim の動作を改善する - VIM マッピング

Vim の動作を改善する - VIM マッピング

齐天大圣
齐天大圣オリジナル
2020-06-12 10:38:352236ブラウズ

Mapping は私のお気に入りの vim 機能で、これを使用すると自分のショートカット キーを自由に設定できるため、執筆効率が大幅に向上します。マッピングは、より複雑なキーを押しやすい少数のキーに置き換えることができるショートカット キーの設定として理解できます。

#マッピングを使用する場合#次の 1 つ以上の問題がある場合は、マッピングを使用できます

#現在のキーに不満がある
  • ショートカットキーを設定して編集速度を向上させたい
  • いくつかのキーを結合する 新しい要件を完了する
  • #マッピング分類

vim には複数のモードがあり、それらに対応することがわかっています。マッピングには、nmap (通常のマッピング)、imap (挿入マッピング)、および vmap (ブロック選択マッピング) も含まれます。 いくつかのケースを選んで、これら 3 つのマッピングについて説明しましょう。

通常のマッピング

" 使用F1切换显示行号
nmap <F1> :set nu! nu?<cr>
ここでの CR は Enter キーを意味します。

挿入マッピング

" 使用jj来代替esc键,完成从插入模式退回到普通模式
imap jj <esc>`^
通常、挿入モードから通常モードにすばやく切り替えるには、esc キーの代わりに jj を使用します。
" 在插入模式下向前向后删除字符
imap <C-b> <Backspace>
imap <C-d> <Esc>lxi
ここで、c は ctrl キーを表します。挿入モードでは、ctrl b を使用して後方に 1 文字を削除し、ctrl d を使用して前方に 1 文字を削除します。

ブロック モード マッピング

一般に、複数行のテキストのインデントを増減することがよくあります。前の記事で述べたように、この要件は、ブロック選択とコマンド ラインまたはマクロを組み合わせることによって実現できます。現在、マッピングを学習した後は、より簡単な方法を使用してニーズを達成できるようになりました。

vmap < <gv 
vmap > >gv
ここで、複数の行をインデントしたい場合は、これらの行を選択して > または < を押すだけで実現できます。

再帰マッピング

次のマッピングを実行すると何が起こるか##​​#

nmap dd O<esc>jddk
ddを実行すると後で重大な問題が発生が発生します。マッピングの両側に dd があるため、無限ループが発生します。この無限ループは再帰によって発生するため、再帰マッピングと呼ばれます。

ご覧のとおり、再帰的マッピングは有害であるため、再帰的マッピングを作業で使用することは決して許可されませんが、非再帰的マッピングを使用する必要があります。では、非再帰的マッピングを行うとどうなるでしょうか?これも非常に簡単で、4 文字を追加するだけです。 nore

##nmap recursive nnoremap non-recursive

##imap recursive inoremap non-recursive
  • vmap 再帰的 vnoremap 非再帰的

以上がVim の動作を改善する - VIM マッピングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。