在Vim中为列插入缩进

oli*_*ver 12 vim formatting text

使用Vim我真的是视觉模式的粉丝,它允许你在列之前插入文本.

在箭头后插入一些间距,

> one
> two
> three
Run Code Online (Sandbox Code Playgroud)

可以通过<Ctrl-V>jjI <Esc>以下方式完成

>   one
>   two
>   three
Run Code Online (Sandbox Code Playgroud)
  • 进入视觉模式<Ctrl-V>,
  • 扩展视觉选择jj,
  • 插入一些空格I__,
  • 将更改传播到块状视觉选择的所有行 <Esc>

现在我有一个需要格式化的文本文件.这就是它的样子:

start() -- xxx
initialize() -- xxx
go() -- xxx
Run Code Online (Sandbox Code Playgroud)

现在我想对齐此部分文本,将其排列成如下列:

start()       -- xxx
initialize()  -- xxx
go()          -- xxx
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不能在每行中插入不同数量的缩进,只是缩进固定数量的空格/制表符是不够的.如何在所有缩进文本必须在同一列对齐的情况下进行缩进?


编辑:我只想出一个相当冗长和笨拙的方法:

  • 找到要缩进的字符串位置:\--,
  • 插入N(我们20说吧)之前,空格:20i <Esc>,
  • 删除这些空间的一部分返回到某列(假设15) d|15,
  • 将这些步骤保存为宏并根据需要重复宏,

......但是非常难看!

ern*_*nix 15

没有任何vim插件我会好多了.这是我的解决方案:

<Shift-V>jj:!column -ts --

然后--像在问题中写的一样插入多行.


您还可以在插入时添加一些注释.

:set virtualedit=all

<Ctrl-V>jjA-- xxx<Esc>

  • 这当然是你在插入时应该这样做的方式.+1. (2认同)