用制表符替换“:”来制作列

时间:2011-01-31 17:33:09

标签: vim colon

我有单词列表,其中西班牙语中的单词或表达由其带有冒号(“:”)的翻译分隔。我想制作两个专栏,一个用于西班牙语,另一个用于英语。我试过

:%s/:/^I^I^I/g

但它没有提供所需的输出。不同的列未对齐。但是,当手动删除冒号并插入具有相同数量的标签笔划的标签数时,它总是最终对齐...

任何想法如何解决这个问题,最好是在vim?

5 个答案:

答案 0 :(得分:4)

在Linux / * nix系统上,我使用了列(1)

:%!column -s':' -t 

接着是

:%retab!

答案 1 :(得分:2)

我很可能会做一个

:s/:/^I/g

后跟

:set ts=25

其中25是预期最长单词的长度+ 2.因此,如果您希望输入的最长单词(在冒号的左侧)为12个字符,我会选择大约14个字符。

答案 2 :(得分:1)

答案 3 :(得分:0)

在插入模式下,您的设置会使制表符到达 th 列。如果我是对的,则使用'softtabstop'设置进​​行设置。

对于这些任务,您可以使用Align.vim或Tabularize等插件。

另一种选择是插入大量空格,然后根据需要多次使用Visual Block和<运算符,如果必须这样做一次。否则更喜欢可重复使用的方法。

答案 4 :(得分:0)

使用Tabular.vim非常简单,只需键入:Tab /:\zs即可完成剩下的工作。