回答:
自動ペアプラグインを探している可能性があります。
あなたは次のように文字を入力すると{
、(
または[
このプラグインは自動的に対称型の文字を追加し、2つのブラケットの間に挿入モードでカーソルを交換します。それらの文字を削除している間も「スマート」にすることができます。
また、矢印キーを忘れてしまったら、アドバイスをします。何をしたいにせよ、ホームローから手を動かさずに、より高速なモーションにアクセスできます。慣れるまでに少し時間がかかるかもしれませんが、一度慣れると見逃すことはありません。
[
、 ]
、 <Esc>
(上にカーソルを置くであろう]
)、そして最後にi
その意志挿入モードでは、カーソルを大括弧の間に置きます。
ctrl-o 2h
?これは、カーソルに手を動かすよりも速いですか?;)
h
かとj
、そうでなければ、私は他の動きを使用します。それは私には速く感じますが、一部の人々は別の方法でそれを感じると思います:)
これを自動的に行う「ペア」プラグインはたくさんあります。しかし、それらすべてが間違った方法で私をこすります。私はTim PopeのSurround.vimプラグインを使用する傾向があります。私は次のことを行います:<c-s>]
挿入モード[]
で、角括弧の中央にカーソルを置いて挿入します。
lh-bracketsは、ブラケットのペアを挿入するための挿入、通常、ビジュアルモードのマッピングを提供します。
ノート:
(
、ビジュアルモードでのヒットは(デフォルトで)囲まれ、ヒットsi(
または同様のシーケンスである必要はありません。私は個人的に、オートマジックによる文字挿入の大ファンではありません。マッピングのセットを簡単に定義して、テキストを挿入したり、必要な場所にカーソルを追加したりできます。
" Add brackets with closing bracket
inoremap <C-a>[ []<Left>
inoremap <C-a>( ()<Left>
" For C & C-like languages
inoremap <C-a>{ {<Cr><Cr>}<Up>
" For Ruby
inoremap <C-a>def def<Cr>end<Up>
ultisnipsのようなプラグインもこのようなことを行いますが、より高度であることに注意してください。たとえば、JavaScriptでは次のように入力できます。
if<Tab>hello
そして私は得る:
if (hello) {
}
ブラケットを完成させるための簡単なスニペットを追加できます。これは、次の場所にある特別な.snippetファイルです~/.vim/UltiSnips/all.snippets
。
snippet (
(${0})
endsnippet
snippet [
[${0}]
endsnippet
snippet {
{
${0}
}
endsnippet
${0}
カーソル位置です。
詳細については:help UltiSnips-adding-snippets
、を参照してください。
ultisnipsにはPythonが必要です。別の有名なプラグインはvim-snipmateです。Vim Wikiには、スニペットプラグインの完全なリストがあります。