背景
Vim有很多很棒的教程和“技巧”页面,但有一点非常困难,就是找到特定的指令,说明如何做一些人们可以轻松做的任意事情。一个人熟悉的文本编辑器IDE。因此,我要求一步一步说明如何在Vim中做一些我已经知道如何在其他文本编辑器中做的事情。我喜欢Vim以及强大的内置帮助和大量的在线教程,但有时人类不得不打破并要求另一个人。
问题:
假设我的文件中有以下代码,如何使用Vim从BEFORE到AFTER?
BEFORE: Lorem ipsum dolor | sit amet, consectetur | adipisicing elit, sed do eiusmod | tempor incididunt | ut labore et | dolore magna aliqua. | Ut enim ad minim veniam, quis nostrud | exercitation ullamco | laboris nisi ut | aliquip ex ea commodo | consequat. Duis aute irure AFTER: Lorem ipsum dolor | sit amet, consectetur | adipisicing elit, sed do eiusmod | tempor incididunt | ut labore et | dolore magna aliqua. | Ut enim ad minim veniam, quis nostrud | exercitation ullamco | laboris nisi ut | aliquip ex ea commodo | consequat. Duis aute irure
备注:
基于任意分隔符而不仅仅是管道,这样做会很好 字符。
如果你还没有找到办法,但是你知道一个插件,这会有所帮助,但优先考虑的是那些拥有他们之前使用的工作解决方案的人
答案 0 :(得分:13)
如果您使用Align插件,则只需:
V
:Align |
|
是任何分隔符
OR
V
\t|
预设|
快捷方式。
答案 1 :(得分:3)
这不是一个神奇的子弹,如果你这么做很多,我希望你会找到/制作一个插件,但这些步骤确实有效,不需要任何特殊安装,并且无论如何都很好学习,因为它们概括了一系列任务。
:set noet
以确保您不会将标签扩展到空格。:set ts=25
设置一个漂亮的大标签停止大小。:%s/\w*|\w*/\t|\t/g
在管道周围添加一个制表位,而不是任意间距。:set et
在我们:retab
转换它们。我经常使用这样的组合,用于一系列文本操作任务。视觉块模式非常有用,我还没有看到许多其他编辑器具有可比性。另请参阅:help blockwise-examples
。
答案 2 :(得分:2)
Damian Conway在IBM Developer Works上发表了一系列关于Vim的文章。这一个:
http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html
显示如何创建一个函数来排列赋值运算符。它位于名为帮助您编码的函数的部分中。我想你可以根据自己的需要进行推广。或者使用Align插件。我有时会在编写自己的工具之间挣扎,从中可以学到一些东西,并获得别人的工具,这通常比我的工具更好,并且让我能够更快地恢复工作。
顺便说一句,整个系列优秀,还有更多。上一篇文章的最后一段说:
因此,在本系列的下一篇文章中,我们将探讨Vim的简单插件架构,它允许您分解.vimrc的部分内容并将它们隔离在单独的模块中。我们将通过开发一个改进使用XML的一些恐怖的独立模块来了解该插件系统的工作原理。