首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim:不同列的不同tabstop

Vim:不同列的不同tabstop
EN

Stack Overflow用户
提问于 2013-03-12 16:27:18
回答 2查看 567关注 0票数 2

我有一些包含数据的文本文件(如cvs),并使用制表符进行了格式化,但列的大小并不完全相同。

vim中的默认格式为:

代码语言:javascript
复制
int1    longvalue1       string1
int2    anotherlongvalue2       string2

vim可以对不同的列使用不同的制表位吗?显示内容将是

代码语言:javascript
复制
int1  longvalue1         string1
int2  anotherlongvalue2  string2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-12 17:35:18

此功能(由编辑器自动完成时)通常称为。这样的补丁已经浮出水面,准备包含在Vim中(例如,参见here),但它们远未包含在Vim中(而且进展甚微)。

作为变通方法,您可以将制表符( :set ts )转换为较大的值(但会导致巨大的间隙),或者使用Align - Help folks to align text, eqns, declarations, tables, etcTabular - Vim script for text filtering and alignment等插件将制表符转换为适当数量的空格(可能是临时的;在:write上转换回来)。

票数 4
EN

Stack Overflow用户

发布于 2013-03-13 18:21:36

感谢Ingo,Align插件就是我需要的。我希望替换<tab>符号,而插件不会替换这些边界(典型的边界是=,不应该替换)。

因此,我创建了一个函数来替换它们:

代码语言:javascript
复制
" :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替换我所有的选项卡

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15356391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档