如何在Vim中将行对齐为表格形式?

3

I have a text file of the form:

line one 1 Sun
line two 22 Mon
line three 33 Tue
line four 444 Wed

如何在特定位置(例如第三个单词)垂直对齐列?所需输出为:

line one   1 Sun
line two   22 Mon
line three 33 Tue
line four  444 Wed

更新:意图是使用本地 Vim 解决方案。我知道有一些基于插件的解决方案。请查看下面的评论,以获取适合我的选择解决方案。

1
https://stackoverflow.com/search?q=%5Bvim%5D+align+table - undefined
查看此答案,了解在Vim上进行自定义对齐的灵活方法。在您的情况下,例如,您可以使用:normal 2W9i 在第三列插��前导空格,然后从那里���左对齐(使用可视块模式和<命令)。我强烈建议学习这种技术,它是Vim中最灵活的对齐方法。 - undefined
感谢推荐的类似问题。我使用了这个答案中的解决方案:https://dev59.com/bHM_5IYBdhLWcg3wyWWt#24065725 - undefined
1个回答

4

在命令模式下我会做什么(不完全是您所要求的):

%!column -t

1
OP只想在单个列上对齐... - undefined
1
添加免责声明 - undefined
2
我相信你的答案的一个更简单的版本是%!column -t - undefined
显然,Cygwin bash支持column。然而,-t选项会将每个单词视为一个单独的列,这不是我想要的(请参阅示例输出)。在我的实际情况中,我希望以赋值运算符(=)进行"列化",这样我就可以使用--output-separator命令选项来定义该字符。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接