Vim将文本左对齐

时间:2018-07-23 10:47:14

标签: vim vim-plugin

给出类似的内容:

dadscasd
  cas
    casdc 

如何在vim中将所有行停在左侧?

dadscasd
cas
casdc 

我安装了vim tabular。我知道如何对齐模式,但不知道如何将所有内容向左对齐。同样不确定vim表格是否是适合该工作的工具。

3 个答案:

答案 0 :(得分:5)

首先看一下:h shift-left-right,这可以解释很多内容。

对于您的用例,:h left会更好。我会那样做:

视觉选择所有3行(c-v,然后键入:left) 或者如果您希望整个文件左对齐::%left

有关更多选项,您可以查看:h formatting

答案 1 :(得分:0)

无需任何插件即可轻松完成此操作
在正常模式下,按:

ggVG<<

,然后根据需要多次按.

命令说明

  • gg:跳到文件顶部
  • V:开始一次视觉选择,一次抓取整行
  • G:转到文件末尾(在这种情况下,选择从头到尾的所有内容)
  • <<:将所选文本左移一个缩进
  • .:重复最后一条命令(在这种情况下,该命令表示我们应该将文件中的所有内容都缩进一个)

如果不想执行所有行,则只需使用vV选择要移动的行。然后按<<>>开始缩进。 .将再次重复发出的最后一条命令,使您的生活更轻松。

要了解更多信息,请打开vim而不输入其他任何内容,键入:h <<并按Enter。

一种无需视觉确认的快速方法是输入

:%left

其中%在此情况下表示当前缓冲区的整个范围,因为它是1, $的别名。
参见:h left:h range

答案 2 :(得分:0)

如果要练习正则表达式使用,则是另一种解决方案

:%s/\v^[ ]+//c

意思是:

:%  an ed command, apply to entire file 
s    I think this means 'sed' = 'stream edit' = find and replace
/    Use this as the separator for the next 3 fields (the find, the replace, and the sed commands)
\v  Means use "very magic mode" of vim ie characters not 0-9A-Za-z have special meanings and need escaping
^    The start of the line
[ ]   A space character (or whatever characters are present between the [ ]. I believe you could use \s instead to represent any space including tabs
+    Means find 1 or more, but select as many as possible (greedy)
//    ie replace with the 'nothing' between the separators here
c     Means confirm each replacement. You could omit this to do it automatically.