kin*_*ine 8 vim shell text-editors
我经常需要手动操作制表符分隔的文本以进行数据输入和其他目的。当我这样做时,如果文本正确对齐到列中会有所帮助。例如(假设有 4 个空格的制表符):
# original format
abcdefghijklmnop field2
abcdefgh field2
abcdefghijkl field2
# ideal format
abcdefghijklmnop field2
abcdefgh field2
abcdefghijkl field2
Run Code Online (Sandbox Code Playgroud)
我非常熟悉使用该column
实用程序以这种方式对文本进行列化,但问题在于它使用空格来对齐列,而我特别需要制表符。这一要求似乎也排除了 Tabularize 插件。
有什么方法可以vim
在 shell内或在 shell 中专门使用选项卡对文本进行列化?看起来我可以用groff
/做到这一点tbl
,但老实说,我宁愿手工将它列成列而不是把它弄乱......
将选项卡显示大小设置为仅大于最长字段。
# original format
abcdefghijklmnop<Tab>field2
abcdefgh<Tab>field2
abcdefghijkl<Tab>field2
I have spaces!<Tab>field2
Run Code Online (Sandbox Code Playgroud)
在 Vim 中,
:echo len("abcdefghijklmnop") " Reports 16
:set noexpandtab tabstop=17
Run Code Online (Sandbox Code Playgroud)
您可能可以将其压缩为一个命令,但我不知道如何。如果您运行的是现代 Vim,:set list
则会用花哨的字符(您也可以配置)指示硬标签。否则他们只会显示为^I
(不是你想要的)或空格。
# displays like this
abcdefghijklmnop>field2
abcdefgh> field2
abcdefghijkl> field2
I have spaces!> field2
Run Code Online (Sandbox Code Playgroud)