完全去缩小视觉块

时间:2014-12-03 12:05:42

标签: vim

如何映射键以完全去除视觉块?

我知道“手动”执行此操作的最佳方法是使用<进行一次缩减,然后重复按.,因此映射为:

vmap <leader>d <.................

这确实有效,但我想知道“正确”的方法。上述内容也只适用于.个。{/ p>

3 个答案:

答案 0 :(得分:5)

使用此page中的步骤从左侧完全修剪范围

的空白区域

一步一步:

Select your block ( shift-v)
:left or :le
<CR>

应该这样做

答案 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}}会将光标移动到

下面的行