在vim中缩小两个空格选择(可视模式)?

时间:2011-10-27 07:55:09

标签: vim

说我有这段代码:

var users = [
  { name: 'TJ', email: 'tj@earnboost.com' },
  { name: 'Loki', email: 'loki@earnboost.com' },
  { name: 'Jane', email: 'jane@earnboost.com' }
  ];

我想在变量中选择三行(在可视模式下)并将其缩进两个空格:

var users = [
    { name: 'TJ', email: 'tj@earnboost.com' },
    { name: 'Loki', email: 'loki@earnboost.com' },
    { name: 'Jane', email: 'jane@earnboost.com' }
  ];

我如何在vim中实现这一目标?

4 个答案:

答案 0 :(得分:16)

如果您的sw为2,则可以直观地选择三行(V)并执行>。您还可以选择一个空格和三行(ctrl-v)的列,点击s并用三个空格替换所述空格,然后点击esc并且所有三行都将受益于此改进。还有更多我确定的方法。通常情况下,您执行>并将sw设置为代码中所需的缩进。

答案 1 :(得分:7)

在可视模式下选择行后。输入":","'<,'>"将自动添加,然后输入标准I和两个空格(空格键)。

:'<,'>norm I<space><space>

答案 2 :(得分:5)

这里的朋友是:le:ri

:[range]ri[ght] [width]                                 :ri :right  

     Right-align lines in [range] at [width] columns
     (default 'textwidth' or 80 when 'textwidth' is 0). 
     {not in Vi}

:[range]le[ft] [indent]                                 :le :left     

       Left-align lines in [range].  Sets the indent in the        
       lines to [indent] (default 0).  {not in Vi}

因此,只需在视觉上选择你的行,然后执行上述之一,如:

:'<,'>ri 2

:'<,'>le 5

(注意:'<,'>部分由VIM自动创建,它是您视觉选择的内容)

答案 3 :(得分:0)

要缩进{}之间(或()[]之间)的缩进方式,我应该使用=%光标放在第一个{上(分别为([)。

对于向右缩进3行,我使用3>>并将光标放在第一行。