2011-01-31 49 views
4

我有单词列表,其中西班牙语中的单词或表达式用冒号(“:”)来表示。我想制作两列,一列用于西班牙语,一列用于英语。我试过用tab替换“:”制作列

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

但它没有给出所需的输出。不同的列不对齐。但是,当手动删除冒号并插入具有相同数量的选项卡笔划的选项卡数量时,它始终会对齐...

任何想法如何解决此问题,最好在vim中?

回答

4

在Linux/* NIX系统我用柱(1)

:%!column -s':' -t 

随后

:%retab! 
+0

优秀!我猜`column`是在这种情况下使用的* *命令。 – Bolo 2011-02-01 07:58:04

0

当处于插入模式时,您的设置会使制表符变为第列。如果我是正确的,那么设置为'softtabstop'

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

另一种方法是插入大量的空格,然后根据需要使用可视块与<运算符多次,如果必须执行一次。否则,更喜欢可重用的方法。

2

我倒是有可能做一个

:s/:/^I/g 

接着是

:set ts=25 

其中25是最长的单词的预计长度+ 2。因此,如果你期望的最长的单词你输入(在冒号的左侧)是12个字符,我会选择14左右的东西。

+1

1。为了修正间距,你可以使用`:set et`后跟`:retab`。或者在文件中添加一个模式行,这样该文件的tabstop大小总是为25(或其他)。 – DrAl 2011-01-31 19:08:43

0

随着Tabular.vim它很容易,只需键入:Tab /:\zs并没有休息。