次のコードを使用してcc
、行が空でない場合は既存のインデントを保持し、行が空の場合は ( を使用してindentexpr
) 計算されたインデントを使用します。
function SmartCC()
if getline('.') !~# '\S'
return 'cc'
else
let spaces = repeat(' ', indent('.'))
return '0d$i' . spaces
endif
endfunction
nnoremap <expr> cc SmartCC()
私が抱えている唯一の問題は、組み込みの とは異なり、cc
これは「実際の」スペースを挿入し、その行に何も入力されていない場合に自動的に削除される「一時的な」スペースを挿入しないことです。
そのような一時的なスペースを挿入する方法はありますか?
それとも、秘密のオプションを設定することで、私が達成しようとしていることがすでに利用可能になっているのでしょうか?
明確にするために、末尾のスペースをすべて削除するプラグインは解決策ではありません。