一致するブレースをvimで自動的に作成するにはどうすればよいですか?
次のように機能するはずです:開き中かっこを入力すると、閉じ中かっこが自動的に表示され、カーソルがその間に置かれます。ブレースのペアから飛び出すには、組み合わせCtrl-jが使用されます。
自動ブレース挿入を提供するプラグインはたくさんあります。だけどあの人達
- Ctrl-jブレースペアから飛び出すためとは異なるキーの組み合わせを使用するか、
- UltiSnipsキーバインディングを妨害します。
以下は期待どおりに動作します
:inoremap ( ()<Esc>:let leavechar=")"<CR>i
:imap <C-j> <Esc>:exec "normal f" . leavechar<CR>a
ただし、これらの設定ではUltiSnipsスニペットは機能しなくなります。そこで、UltiSnipsを使用して閉じブレースを挿入しました。
inoremap ( (<C-R>=UltiSnips_Anon('($1)$0', '(')<CR>
これはほとんど機能します。一致するブレースが挿入され、を使用して閉じているブレースをスキップできCtrl-jます。ただし、これは、開きブレースの前にスペースがある場合にのみ機能します。
main () // works, the closing parentheses is added
main( // fails without a space
私の解決策は、閉じ括弧を飛び越えるために異なるキーバインディングを必要とするか、開いている括弧の前にスペースを必要とします。これを修正する方法は?
注:例として括弧を使用しました。かっこ、中かっこ、角かっこ、小なり記号で動作し、UltiSnipsプラグインを妨害しません。
)
、それへの再マッピングc-j
が機能する可能性があります。