我有一些包含数据的文本文件(如cvs),并使用制表符进行了格式化,但列的大小并不完全相同。
vim中的默认格式为:
int1 longvalue1 string1
int2 anotherlongvalue2 string2vim可以对不同的列使用不同的制表位吗?显示内容将是
int1 longvalue1 string1
int2 anotherlongvalue2 string2发布于 2013-03-12 17:35:18
此功能(由编辑器自动完成时)通常称为。这样的补丁已经浮出水面,准备包含在Vim中(例如,参见here),但它们远未包含在Vim中(而且进展甚微)。
作为变通方法,您可以将制表符( :set ts )转换为较大的值(但会导致巨大的间隙),或者使用Align - Help folks to align text, eqns, declarations, tables, etc或Tabular - Vim script for text filtering and alignment等插件将制表符转换为适当数量的空格(可能是临时的;在:write上转换回来)。
发布于 2013-03-13 18:21:36
感谢Ingo,Align插件就是我需要的。我希望替换<tab>符号,而插件不会替换这些边界(典型的边界是=,不应该替换)。
因此,我创建了一个函数来替换它们:
" :DoAlign command to format the text as an array by replacing the <tabs>.
" Requires the Align-plugin
fun! DoAlignFunction()
%s#\t#==motiv==#g
%Align
%s#==motiv==##g
endfunction
command! DoAlign call DoAlignFunction()这样我就可以(不选择任何文本)用:DoAlign替换我所有的选项卡
https://stackoverflow.com/questions/15356391
复制相似问题