Background:
Vim有很多很棒的教程和"tricks"页面,但有一点非常困难,就是找到一些关于如何在一个人熟悉的文本编辑器IDE中轻松完成任意事情的具体说明 . 因此,我要求一步一步说明如何在Vim中做一些我已经知道如何在其他文本编辑器中做的事情 . 我喜欢Vim以及强大的内置帮助和大量的在线教程,但有时人类不得不打破并要求另一个人 .
Question:
假设我的文件中有以下代码,如何使用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
Notes:
-
基于任意分隔符而不仅仅是管道符号来做这件事会很好 .
-
如果你还没有办法做到这一点,但是你知道一个插件,那会有所帮助,但是偏爱的是那些拥有以前用过的工作解决方案的人
3 回答
如果你使用Align插件,你可以简单地:
使用
V
目测选择文本类型
:Align |
|
是任何分隔符要么
使用
V
目测选择文本类型
\t|
对于预设的
|
快捷方式 .这不是一个神奇的子弹,如果你这么做很多,我希望你能找到/制作一个插件,但这些步骤确实有效,不需要任何特殊安装,并且无论如何都很好学习,因为它们可以推广整个任务范围 .
:set noet
以确保您不会将标签扩展到空格 .:set ts=25
设置一个漂亮的大标签停止大小 .:%s/\w*|\w*/\t|\t/g
在管道周围添加单个制表位而不是任意间距 .:set et
使标签在我们转换回空格时:retab
转换它们 .此时,事情很顺利,但可能会有过多的间距 . 因此,使用visual-block模式(Ctrl v)来整理东西 .
对于一系列文本操作任务,我经常使用这样的组合 . 视觉块模式非常有用,我还没有看到许多其他编辑器具有可比性 . 另见
:help blockwise-examples
.Damian Conway在IBM Developer Works上发表了一系列有关Vim的文章 . 这个:
http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html
展示了如何创建一个函数来排列赋值运算符 . 它位于名为A函数的部分中,可帮助您进行编码 . 我想你可以根据自己的需要进行推广 . 或者使用Align插件 . 我的工具,通常比我的好,让我能更快地恢复工作 .
顺便说一句,整个系列都很优秀,还有更多 . 上一篇文章的最后一段说:
因此,在本系列的下一篇文章中,我们将探索Vim的简单插件架构,它允许您分解.vimrc的部分内容并将它们隔离在单独的模块中 . 我们将通过开发一个改进使用XML的一些恐怖的独立模块来了解该插件系统的工作原理 .