我想在许多代码行的前面插入8个空格,
我的光标位于if strftime()
的前面,我想在if strftime()
到endif
的所有行中添加8个空格,
13>> #count how many lines behind the cursor ,and `number >>` can do.
我不想计算光标后面有多少行,有没有简单的方法呢?
答案 0 :(得分:1)
使用带有计数的>>
,如果启用相对行号(:set relativenumber
),则可以非常轻松地获取行数。
或者,使用>
代替>>
,后者接受动作命令。如果阻止后有一个空行,只需使用>}
缩进到空白行。或者它可以是搜索,例如>/endif<Enter>
。
或直观地选择您想要的内容并按>
一次。
答案 1 :(得分:1)
这就是我在这种情况下会做的事情:
我尝试了另一个选项,它也适用于我:
:set nu
显示行号:34,46>>
然后第34行和第46行之间的行将进行>>
更改,您可以在您的情况下将两行代码更改为您的。答案 2 :(得分:1)
这是如何在不必估计线条的情况下完成的。
答案 3 :(得分:0)
使用标记的另一种方式:
将光标放在要插入空白的第一行的开头,可能是在命令模式下键入/if (strftime/
。现在输入 m ,然后输入任何字母,用该字母作为参考设置标记。例如,我输入 m ,然后输入 a 来设置标记'a'。
将光标置于要插入空白的最后一行的开头。现在使用不同的字母设置标记(我使用标记'b'。)
现在你的问题还不清楚你是想通过在开始时插入8个空格来换线,还是你真的想要使用shift命令移动线8次,我会用两个回答:
按shiftwidth
转8次:
:'a,'b>>>>>>>>
>
个字符的数量是要移位的次数(在这种情况下为8),'a
和'b
是以'开头的标记名称< / kbd> character。
通过插入8个前导空格进行移位:输入
:'a,'bs/^/ /
是的,必须完全输入空格。
答案 4 :(得分:0)
按v
现在选择要修改的代码块
按>
在所选块的每一行的开头插入一个标签。
你已经完成了。
答案 5 :(得分:0)
>
命令采用{motion}
选择要缩进的行范围。现在对于Vimscript的if...endif
, matchit.vim 插件(与Vim一起提供,请参阅:help matchit
)可以添加循环。由于您之间有else
个子句,因此您需要使用反向g%
动作向后循环到最终endif
。
因此,缩进的最短命令是>g%
。