如何映射键以完全去除视觉块?
我知道“手动”执行此操作的最佳方法是使用<
进行一次缩减,然后重复按.
,因此映射为:
vmap <leader>d <.................
这确实有效,但我想知道“正确”的方法。上述内容也只适用于.
个。{/ p>
答案 0 :(得分:5)
答案 1 :(得分:1)
您可以将计数添加到<
;我通常做50<
,它会将它缩减50次,这几乎总是足够的。
来自:help <
:
{Visual}[count]< Shift the highlighted lines [count] 'shiftwidth' leftwards (for {Visual} see Visual-mode). {not in Vi}
答案 2 :(得分:0)
您可以直接删除第一个字符前每行中的所有空格,而不是使用<
键进行去缩进。您可以通过添加:
let @y = '0d^j'
要在所选块的每一行上运行此命令,请键入:
进入命令模式并完成以下命令:
:'<,'>normal @y
然后你可以再次录制另一个宏来执行此操作:
let @q = ':normal @y'
使用此方法,您最终可以通过键入@q
来取消缩进视觉块,该@y
在后台调用宏0
。
第一个宏的解释:
d^
会将光标移动到行的开头
j
将删除所有空格,直到第一个字符和
{{1}}会将光标移动到
下面的行