用于对齐文本的插件 Align
用vim 打开Align.vba.gz 然后执行so %命令 就已经安装成功了。
(
我们在前面写的脚本,保存起来就成了一语法文件。我们使用:so命令就可以运行了,不过你也许还希望它像其他语法文件一样能自动加载。要做到这一点也很简单。
在我们继续之前我简单描述一下语法文件加载的机制。Vim读入/新建文件时根据后缀名判断文件类型(或者根据模式行中设置的'filetype'设置项判断文件类型),然后在$VIMRUNTIME/syntax/和$VIM/vimfiles/syntax/中查找以文件类型为文件名,.vim为后缀的文件。找到的话加载该文件。
所以语法文件我们已经有了,我们只需要再选择合适的文件类型名。假设我们使用的文件类型名是'u_mark',将上面的脚本命名为u_mark.vim放到这个目录中:$VIM/vimfiles/syntax/。然后要让Vim打开成绩单时知道自动应用语法文件。在学习autocmd和filetype的内容之前,在这里我们可以简单地使用模式行,来达到这个目的。在成绩单文件的末尾加入模式行:
vim:ft=u_mark
现在打开成绩单文件时Vim就会自动加载语法文件。如果打开成绩单时还是没出现语法高亮请确定已经开启了语法高亮。使用:syn on开启高亮,必要的话将之放到.vimrc中。
)再用vim打开文档,用v模式选中后,运行: '<,'>Align % (意思是以%号对齐)
- 制表
1, first, one, a 2, second, two, b 3, third, three, c 4, fourth, four, d
如果想将它对齐为:
1, first , one , a 2, second, two , b 3, third , three, c 4, fourth, four , d
可以使用命令:
:AlignCtrl =lp0P1I :'<,'>Align ,
说明:
- = 所有分隔符等价
- l 左对齐域
- p0 每个分隔符前不添加空格
- P1 每个分隔符后添加一个空格
- I 保留第一行的开头空白并将其应用到所有对齐的行
Align的AlignMaps.vim提供了一组映射,使操作更加简单。使用时,以可视模式选中要调整的行,然后按下面的键组合即可,如上面的两个例子,就可以分别使用前两个键组合完成。
- \t= 等号对齐(注意 == 和 != 等逻辑符不生效)
- \t, 逗号对齐
- \t| 垂直符对齐
- \tsp 空格对齐
- \tt LaTeX表格对齐
还有一些较复杂的映射方案,供特定的代码环境使用:
- \acom 对齐注释
- \adec 对齐C声明(每行一个变量)
- \afnc 对齐ansi样式的C函数参数
- \Htd 对齐HTML表格
还有一个类似的插件 Tabular 。