Enter キーを押すと、vim の smartindent が次の行の正しいインデント レベルを選択しないことがあります。前の行のインデント レベルに戻り、そこから移動したい場合があります。これを達成するために数回押すことができることは知っていますがctrl-d
、上の行のインデントレベルにすぐに移動するキーにはより便利です.
4 に答える
単なる偶然かどうかはわかりませんが、Alexey Radev がprev_indent プラグイン:PrevIndent
を公開しました。これは、現在の行を前のインデント レベルに移動する挿入モード マッピングとコマンドを提供します。
通常モードでは、 と を使用<
し>
てインデントを増減できます。それらは、動き、視覚的な選択、および>>
<<
現在の行に対して期待どおりに機能します。を使用して「正しい」インデント レベルを選択することもできます。これも=
、動きなどに関して期待どおりに機能します。
したがって、私が通常行うことは、編集が完了した後、ブロックの選択と の使用を組み合わせて、通常モードでインデント エラーを修正し=
、次に と を使用して個々の行を修正すること<<
です>>
。
このような単純なタスクにプラグインをインストールするのが面倒な場合 (私はできませんでした)、次の単純なマッピングを試してください。
:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I
挿入モードでは、前の行のように現在CtrlDの行をインデントします。
これは、カーソルがインデントのすぐ後ろにリセットされるため、新しい行に入力を開始する前に最適に機能します。
<C-O>=G
挿入モードで、カーソルからファイルの最後までインデントするために使用できます。または<C-O><<
、インデント レベルを 1 つ削除します。