在可视块中对齐文本

时间:2014-12-16 08:26:24

标签: vim alignment block text-alignment

Vim中是否有办法在Visual Block中对齐文本?

体育专业。我文件的部分示例:

text text  |5  sm 23  |
text  text |1274 hc a4|
text text  | 33 rnd bc|
 text text | 28 yz 22 |
text text  |9808 yz 56|

预期产出:

text text   5   sm  23
text  text  1274 hc a4
text text   33  rnd bc
 text text  28  yz  22
text text   9808 yz 56

我启用了virtualedit::set virtualedit=all 我添加了一个带空格的列(在我的示例中右侧|),以便在&#34; 23&#34;之后创建两个空格。 &#34; 22&#34;之后的1个空格 然后我选择了视觉块并执行了命令:'<,'>ce
没有预期的输出。

1 个答案:

答案 0 :(得分:1)

你所描述的通常被称为 justify (通过添加内部空格来向左和右边距);而 center 向左和向右添加空格以获得相等的金额。

有两个插件可以证明整行

  • $VIMRUNTIME/macros/justify.vim附带Vim
  • Justify plugin提供了一个简单的实现

如果你想将它应用于块选择,你必须删除块顺序选择,将它们放在单独的行/暂存缓冲区中,证明它(到选择的原始宽度),然后猛拉回来再插入一个块。 (对于这些,我的UnconditionalPaste plugin提供了方便的glpgbp映射。)根据您需要的频率,可以手动应用,也可以尝试通过自定义映射进行自动化。