我有单词列表,其中西班牙语中的单词或表达式用冒号(“:”)来表示。我想制作两列,一列用于西班牙语,一列用于英语。我试过用tab替换“:”制作列
:%s/:/^I^I^I/g
但它没有给出所需的输出。不同的列不对齐。但是,当手动删除冒号并插入具有相同数量的选项卡笔划的选项卡数量时,它始终会对齐...
任何想法如何解决此问题,最好在vim中?
我有单词列表,其中西班牙语中的单词或表达式用冒号(“:”)来表示。我想制作两列,一列用于西班牙语,一列用于英语。我试过用tab替换“:”制作列
:%s/:/^I^I^I/g
但它没有给出所需的输出。不同的列不对齐。但是,当手动删除冒号并插入具有相同数量的选项卡笔划的选项卡数量时,它始终会对齐...
任何想法如何解决此问题,最好在vim中?
在Linux/* NIX系统我用柱(1)
:%!column -s':' -t
随后
:%retab!
当处于插入模式时,您的设置会使制表符变为第列。如果我是正确的,那么设置为'softtabstop'
。
对于这些任务,您可以使用像Align.vim或Tabularize这样的插件。
另一种方法是插入大量的空格,然后根据需要使用可视块与<
运算符多次,如果必须执行一次。否则,更喜欢可重用的方法。
我倒是有可能做一个
:s/:/^I/g
接着是
:set ts=25
其中25是最长的单词的预计长度+ 2。因此,如果你期望的最长的单词你输入(在冒号的左侧)是12个字符,我会选择14左右的东西。
1。为了修正间距,你可以使用`:set et`后跟`:retab`。或者在文件中添加一个模式行,这样该文件的tabstop大小总是为25(或其他)。 – DrAl 2011-01-31 19:08:43
看看vim的Align插件。
随着Tabular.vim它很容易,只需键入:Tab /:\zs
并没有休息。
优秀!我猜`column`是在这种情况下使用的* *命令。 – Bolo 2011-02-01 07:58:04