使用VIM开发软件项目
July Wind05/20/2007
- 说明
- session and viminfo
- vimrc
- 保存项目相关配置
- TAG
- 文件浏览和缓冲区浏览
- lookupfile插件
- 在标签页中打开文件(For Windows VIM only)
- 颜色配置
- quickfix
说明
本文是学习Easwy的专栏中关于VIM使用方面文章的笔记。原文链接:http://blog.youkuaiyun.com/easwy
session and viminfo
参考文档:http://blog.youkuaiyun.com/easwy/archive/2007/02/16/1511021.aspx
目的:自动为你恢复到你上次退出的环境,恢复窗口布局、所打开的文件,甚至是上次的设置。
相关命令
" Save session and viminfo
:set sessionoptions-=curdir '在session option中去掉curdir
:set sessionoptions+=sesdir '在session option中加入sesdir
:mksession vim70.vim '创建一个会话文件
:wviminfo vim70.viminfo '创建一个viminfo文件
" Restroe session and viminfo
:source ~/src/vim70/src/vim70.vim '载入会话文件
:rviminfo vim70.viminfo '读入viminfo文件
vimrc
下面的例子演示了mapleader, silent 的用法。
1 "Set mapleader
2 let mapleader = ","
3
4 "Fast reloading of the .vimrc
5 map <silent> <leader>s :source ~/.vimrc<cr>
6 "Fast editing of .vimrc
7 map <silent> <leader>e :e ~/.vimrc<cr>
8 "When .vimrc is edited, reload it
9 autocmd! bufwritepost .vimrc source ~/.vimrc
保存项目相关配置
参考文档 http://blog.youkuaiyun.com/easwy/archive/2007/02/27/1515803.aspx
path选项定义了一个目录列表,在使用gf,find,以及CTRL-W f等命令时,如果使用的是相对路径,那么就会在path选项定义的目录列表中查找相应的文件。
保存项目相关的配置,启动VIM时自动加载
" create workspace.vim in your project directory, which has project configurations
" put the following statements in your _vimrc file
" execute project related configuration in current directory
if filereadable("workspace.vim")
source workspace.vim
endif
TAG
VIM常用命令
:!ctags -R "创建tag文件
:tag {ident} "跳转到指定的标签, indet 可以使用正则表达式, 如:tag /start
:tags "显示标签栈
CTRL-] "跳转到当前光标下的标签
CTRL-T "跳到标签栈中较早的标签
taglist插件
Taglist 下载链接 http://www.vim.org/scripts/script.php?script_id=273
参考文档:http://blog.youkuaiyun.com/easwy/archive/2007/03/02/1518902.aspx
插件的安装
- 将插件和文档分别放入plugin和doc目录
- 生成帮助标签 :helptags $vim/vim70/doc
- 查看帮助 :help taglist.txt
典型的vimrc配置
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
if MySys() == "windows" "设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "linux" "设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
map <silent> <leader>tl :TlistToogle<cr>
按 <F1> 可以获取List窗口的操作命令
文件浏览和缓冲区浏览
参考文档 http://blog.youkuaiyun.com/easwy/archive/2007/03/09/1525554.aspx
文件浏览
在VIM 7.0以前,文件浏览功能由explorer.vim插件提供,在VIM 7.0中,这个插件被netrw.vim插件所代替。netrw.vim是VIM的标准插件,它已经伴随VIM发行,不需要安装。
vimrc 配置
""""""""""""""""""""""""""""""
" netrw setting
""""""""""""""""""""""""""""""
let g:netrw_winsize = 30
nmap <silent> <leader>fe :Sexplore!<cr>
TODO: 如何在另外一个窗口打开制定的文件
缓冲区浏览
VIM命令
- :ls
- C-^
BufExplorer插件。BufExplorer插件在此处下载: http://vim.sourceforge.net/scripts/script.php?script_id=42
有一个称为minibufexpl.vim的插件,也可以把缓冲区列表显示出来,这个插件在此处下载: http://vim.sourceforge.net/scripts/script.php?script_id=159
Winmanager插件在这里下载: http://vim.sourceforge.net/scripts/script.php?script_id=95
""""""""""""""""""""""""""""""
" winManager setting
""""""""""""""""""""""""""""""
let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
let g:winManagerWidth = 30
let g:defaultExplorer = 0
nmap <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
nmap <silent> <leader>wm :WMToggle<cr>
lookupfile插件
参考文档 http://blog.youkuaiyun.com/easwy/archive/2007/03/12/1527228.aspx
Lookupfile插件可以在下面的链接下载: http://www.vim.org/scripts/script.php?script_id=1581
Lookupfile插件还需要最新的genutils支持,因此,需要下载genutils: http://www.vim.org/scripts/script.php?script_id=197
在标签页中打开文件(For Windows VIM only)
方法1: Sendto
"C:/Program Files/Vim/vim70/gvim.exe" -p --remote-tab-silent "%*"
方法2: 修改注册表
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/*/Shell/Edit with Vim]
@="Edit with &Vim"
[HKEY_CLASSES_ROOT/*/Shell/Edit with Vim/command]
@="/"C://Program Files//Vim//vim70//gvim.exe/" -p --remote-tab-silent /"%1/" /"%*/""
颜色配置
参考文档 http://blog.youkuaiyun.com/easwy/archive/2007/03/29/1545707.aspx
常用配置命令
:syntax enable
:colorscheme darkblue
关键词亮显的插件:http://www.vim.org/scripts/script.php?script_id=1238
quickfix
参考文档 http://blog.youkuaiyun.com/easwy/archive/2007/04/11/1559986.aspx
Quickfix模式的主要思想是保存一个位置列表,然后提供一系列命令,实现在这个位置列表中跳转。位置列表的产生可以从编译器的编译输出信息中获得,也可以由grep命令的输出信息中获得,我们上篇文章所介绍的cscope命令,也可以产生位置列表信息(
常用命令
在quickfix模式里经常用到的命令有:
:cc 显示详细错误信息 ( :help :cc )
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
:cl 列出所有错误 ( :help :cl )
:cw 如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col 到前一个旧的错误列表 ( :help :col )
:cnew 到后一个较新的错误列表 ( :help :cnew )
GREP, 查找符号
- 内部: vimgrep
- 外部: grep