如何以简单的方式向左或向右移动一些线? (不是<<>>)

时间:2010-06-27 11:41:07

标签: vim code-formatting

我在sass文件中有一些行:

.menu
  ul
    xx: xx
  li
    xx: xx
  a
    xx: xx
.others
  xx: xx

如果我想将整个.menu部分向右移动一个宽度的标签,我应该使用7>>。这太无聊了,我不得不指望.menu中有多少行。

有没有简单的方法可以做到这一点?我的意思是,同时移动一个节点及其子节点

3 个答案:

答案 0 :(得分:5)

转到节点的第一行,按Shift-V,转到节点的最后一行,按>

答案 1 :(得分:4)

让我建议选择一个带有子节点的节点,然后使用缩进 ><命令。

要在一次击键中选择缩进文本(SASS文件中的节点),可以使用 vim-indent-object插件。此插件定义了其他文本对象 根据缩进级别对文本块进行操作的映射。运用 这些映射,可以选择具有一定缩进级别的文本 vaivii等等(例如,单词 - vawviw等)。看到 有关插件home page的其他详细信息。

答案 2 :(得分:0)

查找起始行和结束行(:set nu/set nonu)的行号,例如4和10,然后使用

:4,10s/^/\t/

也就是说,用4到10行范围内的制表符替换行的开头。

或者只是简单地进行减法(结束 - 开始+ 1)并将其用于重复>>,但显然光标需要在起始行上。这对于短片段来说非常好,但如果片段很长,则另一种方式更方便。