On this page... (hide)
- 1. 使用及配置文档
- 2. 重要插件
- 2.1 其他有趣插件
- 3. 要诀与技巧
- 3.1 文件编码自动识别与转换
- 3.2 启动时最大化窗口
- 3.3 打开内置文件管理器
- 3.4 在多个文件中查找字符串
- 3.5 设置快捷键执行当前脚本及检查脚本语法
- 3.6 整理eol (End of Line) (处理看到的^M)
- 3.7 绕过粘帖文本时缩进混乱的问题
1. 使用及配置文档
- Vim 中文帮助文档
- vimtutor:大多数 Vim 实现会自带这个命令行程序,来帮助熟悉 Vim 最常用的操作指令。
- 转载:高效率编辑器 VIM - 操作篇
- 进行有效编辑的七种习惯
- 配置vim为Python开发环境
- “VIM for (PHP) Programmers” slides and resources 其中不仅提到了很多(PHP)Web 开发用到的插件,而且也有总结很多有用的 Vim 基本命令使用技巧。这些具体的技巧有待于进一步整理。
- 继续补充vim配置技巧——上次的vimrc还不够强力:里面提及了一些 MacVim 特有的设置选项,值得参考。
- Vimdiff 使用 Vim可以作为一个Merge工具来使用,也即分析两个文件的内容差别,并且帮助完成对文件内容的合并。
- VIM查找替换归纳总结
- 用vim处理字符的大小写转换
2. 重要插件
- minibufexpl 模拟编辑器的多标签编辑(打开超过一个文档时自动出现Buffer栏,Ctrl+W进入窗口切换状态后再按W键就可以进行切换窗口的操作。如果设置了let g:miniBufExplMapCTabSwitchBufs = 1,那么可以直接用“Ctrl+Tab”和“Ctrl+Shift+Tab”切换到上一个和下一个Buffer;如果设置了let g:miniBufExplMapWindowNavVim = 1,那么可以用“Ctrl+H”切换到左侧的窗口、“Ctrl+K”切换到上方窗口等。);
- 未安装此插件时(装了也照样可以用)可以用ls指令查看当前Buffer、b Buffer编号切换到对应Buffer、bp和bn分别是切换到上一个和下一个Buffer、bd则删除当前显示的单个Buffer。
- 启用了minibufexpl以后,就不要用“:q”来关闭一个文件了,而是应该用“:bd Buffer号码”来关闭非当前Buffer,否则会在关闭文件的同时把当前主编辑窗口关掉,剩下的窗口通常会自动进行重新布局,十有八九窗口布局就这样乱掉了。。谁有更省事的操作方法还请告诉我。。
- :tab ball指令则可以将所有的Buffer转化成窗口标签显示。
- SuperTab 根据文本中曾经出现过的内容进行自动补全(Tab键),默认是会记住上次使用的补全模式(omni全能补全或者关键字补全);
- taglist 在左侧窗口显示代码结构(需要ctags的可执行文件;用“:Tlist”可以激活;或者在配置文件添加“let Tlist_Auto_Open=1”自动激活);
- EnhancedCommentify 方便的注释/反注释(在没有修改mapleader变量的情况下,“\x”是注释/反注释当前选中的代码块);
- python_fold Python语言的代码折叠模块(zc是折叠,zo是展开);
- insenvim 提供编程语言的函数提示,不过好像不支持Python;
- showpairs 高亮显示匹配的括号;
- python.vim 众多Python代码编辑辅助功能的集合;
]t 移动到当前缩进块的开头 ]e 移动到当前缩进块的结尾 ]v 选中当前缩进块中的所有行 ]< 将当前块的缩进减少一级 ]> 将当前块的缩进增加一级 ]# 给当前选中的行增加一级注释标记 ]u 给当前选中的行减少一级注释标记 ]c 选中当前类的所有行 ]d 选中当前函数的所有行 ]<up> 跳到有当前缩进级别的上一行 ]<down> 跳到有当前缩进级别的下一行 ]j 跳到下一个类的类定义行 ]J 跳到上一个类的类定义行 ]f 跳到下一个函数的定义行 ]F 跳到上一个函数的定义行 - Python函数提示 在有ctags支持的情况下直接用omni全能补全即可(顺序按Ctrl+x, Ctrl+o启用),其他补全模式还有:
整行补全 CTRL-X CTRL-L 根据当前文件里关键字补全 CTRL-X CTRL-N 根据字典补全 CTRL-X CTRL-K 根据同义词字典补全 CTRL-X CTRL-T 根据头文件内关键字补全 CTRL-X CTRL-I 根据标签补全 CTRL-X CTRL-] 补全文件名 CTRL-X CTRL-F 补全宏定义 CTRL-X CTRL-D 补全VIM命令 CTRL-X CTRL-V 用户自定义补全方式 CTRL-X CTRL-U 拼写建议 CTRL-X CTRL-S - pysmell插件能够扩展omni全能补全对函数提示的处理能力,可以考虑选用。
- pyflakes.vim Python的错误检查工具,在保存buffer或者退出编辑模式时都会对代码进行检查并给出错误提示。需要Vim包含Python 2.5以上运行环境支持(MacVim为了兼容Tiger,默认只兼容Python 2.3.5,因此只能自行重新编译MacVim才能使用pyflakes.vim)。(找到的错误显示在quickfix窗口,用:h quickfix来查询用法。)
- pylint.vim Python代码风格和常见错误检查工具,检查很仔细,运行速度慢……所以建议用“let g:pylint_onwrite = 0”让它不要在每次保存Python文件的时候都检查,而是用“:Pylint”指令来调用。(此插件的安装说明见pylint.vim文件中的注释)(找到的错误显同样示在quickfix窗口,用:h quickfix来查询用法。)
2.1 其他有趣插件
- Win Manager:给Vim左边放上一个文件管理器,方便打开文件等等。好多人说NERDTree是完成这件事的一个更好选择。我现在暂时是用Vim自带的文件管理功能。
- snipMate:据说是类似 TextMate 风格的扩展,敲个for之类的就补全出整个结构来备用。感觉对C语言、html之类的应该非常有用。
- Eclim:让 Vim 可以调用 Eclipse 的一些功能,比如代码检查、智能代码提示等等。
- Conque:可以在 Buffer Window 中执行一个 Shell 解释器,这样就能在 Shell 操作的时候利用 Vim 的特性。
- Screen (vim + gnu screen/tmux):向命令行多窗口环境 screen/tmux 发指令的插件,还没弄明白是怎么回事儿。。
- VimIM:利用 Vim 扩展实现的输入法,在联网的情况下也可以利用搜狗云输入法来加强整句输入的效果。
- Fcitx for Vim:Fcitx 的 Vim 插件,可以在切换 Vim 编辑模式时自动切换 Fcitx 输入法的状态,避免中文输入状态影响 Vim 命令的执行。
3. 要诀与技巧
3.1 文件编码自动识别与转换
为了让 Vim 自动识别常见中文编码,在_vimrc或.vimrc里加入下面设置命令即可:
文件编码转换
在Vim中输入 :set fenc=编码 即可将文档的编码转换为相应的编码格式,这是只需要保存文档,文档的编码就变了。
如果在Vim中输入 :set enc=编码 即可改变Vim的显示编码,这是就可以看到文档中的乱码了,不过这是即使对文档做了修改并保存,文档仍旧以之前的文档编码保存。
3.2 启动时最大化窗口
在_vimrc或.vimrc里加入如下指令:
3.3 打开内置文件管理器
下面的“.”是要打开的路径,也可以用自己想浏览的路径来代替。
3.4 在多个文件中查找字符串
vim6可以通过调用操作系统系统的“grep”指令实现,vim7可以像下面这样:
用“ :vimgrep /pattern/ files”,例如:“:vimgrep /File/ *.php”就是在当前目录下所有.php文件中找File这个字。当前目录可以用“:pwd”来看。然后可以用“:copen”打开 quickfix窗口查看结果。
3.5 设置快捷键执行当前脚本及检查脚本语法
(待续)
3.6 整理eol (End of Line) (处理看到的^M)
有时在编辑文件的时候,会看到行尾出现^M,这说明这个文件里面混用了Windows风格的行结束符(\r\n)和Unix风格的行结束符(\r),于是vim晕掉了,只好把文件当作Unix风格来处理,结果Windows风格的行结束符就会显示出多余的^M来。这种情况不处理,混用的文件在一些不够聪明的编辑器下就会乱掉。替换方法如下:
3.7 绕过粘帖文本时缩进混乱的问题
有时 Ctrl+V 粘帖文本时,会在后续的行多出很多额外的缩进,导致格式混乱(在粘帖程序源代码的时候特别容易遇到)。这可以通过进入 paste 模式来绕过。具体操作方法是,在 vim 键入如下指令: