Vim 如何多次缩进一组行

Vim 如何多次缩进一组行,vim,Vim,在Vim 5中>>将移动下面的五行,包括光标位于一个选项卡上的那一行或向右移动两行。5> >>一种方法是使用视觉选择来选择行: e、 g.要缩进当前行和接下来的4行,请选择with v4j 然后使用后跟的数字缩进多次,例如3>您可以执行以下操作: nnoremap > :<C-u>exec 'set shiftwidth='.v:count1<cr>> nnoremap < :<C-u>exec 'set shiftwidth='.v:cou

在Vim 5中>>将移动下面的五行,包括光标位于一个选项卡上的那一行或
向右移动两行。5> >>

一种方法是使用视觉选择来选择行:

e、 g.要缩进当前行和接下来的4行,请选择with v4j

然后使用后跟
的数字缩进多次,例如3>

您可以执行以下操作:

nnoremap > :<C-u>exec 'set shiftwidth='.v:count1<cr>>
nnoremap < :<C-u>exec 'set shiftwidth='.v:count1<cr><
xnoremap > :<C-u>exec 'set shiftwidth='.v:count1<cr>gv>
xnoremap < :<C-u>exec 'set shiftwidth='.v:count1<cr>gv<

但是,如果您使用的是较小的换档宽度,则不考虑这一点。

来自
vim
官方手册:
:help>

要将一条线移动几位,请使用视觉模式或:命令

例如:

    Vjj4>           move three lines 4 indents to the right
    :<<<            move current line 3 indents to the left
    :>> 5           move 5 lines 2 indents to the right
    :5>>            move line 5 2 indents to the right
Vjj4>向右移动三行4个缩进
:5向右移动5行2个缩进
:5>>将第5行向右移动2个缩进

或者简单地说,
5>
并在正常模式下使用
重复该命令,正如@acushner所指出的那样

4:>>>
时,您将看到:

:.,.+3>>>

然后按

我通常只做
5>
,然后按
我需要的次数。这并不能真正解决我的问题,它只是将它从“如何获得当前被
5>
卡在1的Y倍部分”更改为“如何获得被
5>
卡在1的X倍部分”@Austin_Anderson你必须把计数和运动分开。计数是第一个
之前的所有内容,计数是第一个
之后的所有内容。所以你可以做
5>5>
或者
5>4j
:.,.+3>>>