2

自動追加しようとしています; 、またはキーストロークによる式の最後に必要なものは何でも、別の行に移動します。

基本的には のようなものになるinoremap <leader>; <C-o>A;のですが、もう少し改善してほしいです。次の行が空 (または存在しない)の場合は を実行し<C-o>A;<cr>、空でない場合は<C-o>A;<Down>. 言い換えれば、次の行が存在するかどうか、およびそれが空であるかどうかを確認する慣用的な方法が必要です。ありがとう。

4

1 に答える 1

5

実際の質問への回答:

inoremap <expr> <leader>; getline(line(".")+1) =~ "^$" ? "\<C-o>A;\<CR>" : "\<C-o>A;\<Down>"

「式」マッピングを使用すると、1 つ以上の式の結果に応じてさまざまなマクロを実行できます。ここでは、単純な三項演算子内で以下の行が空かどうかを確認します。

参照:

:help <expr>
:help getline()
:help line()
:help =~

元の質問に対する元の回答:

inoremap <leader>; <C-o>A;^M

^Mは、を押して取得するリテラル<C-m>( の同義語) です。<CR><C-v><CR>

于 2015-12-19T12:50:25.207 に答える