vimで手動の折りたたみを使用して現在の行(カーソルがある行)と同じインデントで各行を折りたたむにはどうすればよいですか?
デフォルトでは、Vimを使用するときにVimが行うようにアイテムを折りたたむにはVimが必要な場合があります。しかし、私はVimを使用して変更しないことをfoldmethod=indent
好みます。foldmethod=manual
たとえば、
function f(x)
while (x > a)
foo = bar
someStuff() // suppose cursor is here
x = foo + a
end
if (x < b)
x = b // this line should not be indented
end
end
この場合、行をfoo = bar
に縮小する必要がありますx = foo + a
。
ベストアンサー1
:-1,+1norm zF
縮小する行の相対範囲を指定するために使用できます。 (上1行、下1行の場合は1
命令からsを省略してそのまま使用してもかまいません:-,+norm zF
。)
プラグインをインストールする場合は、次のものがあります。
vimインデントオブジェクトii
nside ndentやrund ndent i
(i
など)などの「インデントオブジェクト」を提供します
ai
。そうすれば、そのようなことができます。a
i
zfii