手把手教你把Vim改装成一个IDE编程环境(图文)
By: | 吴垠 |
Date: | 2007-09-07 |
Version: | 0.5 |
Email: | lazy.fox.wu#gmail.com |
Homepage: | http://blog.csdn.net/wooin |
Copyright: | 该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行为需经作者同意。 联系方式:lazy.fox.wu#gmail.com |
:help keycodes |
1 | 简洁明了的Buffer浏览和操作 |
2 | 文件浏览器 |
3 | tag浏览器 |
4 | 高亮的书签 |
5 | 更丰富的语法高亮 |
6 | 成员变量的下拉, 自动补全 |
:help usr_29 :help usr_30 |
% | 跳转到配对的括号去 |
[[ | 跳转到代码块的开头去(但要求代码块中'{'必须单独占一行) |
gD | 跳转到局部变量的定义处 |
'' | 跳转到光标上次停靠的地方, 是两个', 而不是一个" |
mx | 设置书签,x只能是a-z的26个字母 |
`x | 跳转到书签处("`"是1左边的键) |
> | 增加缩进,"x>"表示增加以下x行的缩进 |
< | 减少缩进,"x<"表示减少以下x行的缩进 |
syntax enable syntax on |
colorscheme desert |
:help syntax.txt |
"======================================================== " Highlight All Function "======================================================== syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1 hi cFunction gui=NONE guifg=#B5A1FF "======================================================== " Highlight All Math Operator "======================================================== " C math operators syn match cMathOperator display "[-+\*/%=]" " C pointer operators syn match cPointerOperator display "->\|\." " C logical operators - boolean results syn match cLogicalOperator display "[!<>]=\=" syn match cLogicalOperator display "==" " C bit operators syn match cBinaryOperator display "\(&\||\|\^\|<<\|>>\)=\=" syn match cBinaryOperator display "\~" syn match cBinaryOperatorError display "\~=" " More C logical operators - highlight in preference to binary syn match cLogicalOperator display "&&\|||" syn match cLogicalOperatorError display "\(&&\|||\)=" " Math Operator hi cMathOperator guifg=#3EFFE2 hi cPointerOperator guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cBinaryOperator guifg=#3EFFE2 hi cBinaryOperatorError guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cLogicalOperatorError guifg=#3EFFE2 |
"======================================================== " My Own DataType "======================================================== syn keyword cType My_Type_1 My_Type_2 My_Type_3 |
: lazy.fox.wu#gmail.com | |
Homepage | : http://blog.csdn.net/wooin |
$ tar -xzvf ctags-5.6.tar.gz $ cd ctags-5.6 $ make # make install // 需要root权限 |
$ cd /home/wooin/vim71 $ ctags -R |
$ vim /home/wooin/vim71/src/main.c |
:set tags=/home/wooin/vim71/tags |
:help usr_29 |
$ ctags -R |
: lazy.fox.wu#gmail.com | |
Homepage | : http://blog.csdn.net/wooin |
下载地址 | http://www.vim.org/scripts/script.php?script_id=273 |
版本 | 4.4 |
安装 | 在 ~/.vim 目录下解压taglist_xx.zip |
手册 | :help taglist.txt |
:help taglist.txt |
let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 |
$ vim ~/vim/src/main.c |
:Tlist |
下载地址 | http://www.vim.org/scripts/script.php?script_id=95 |
版本 | 2.x |
安装 | 在 ~/.vim 目录下解压winmanager.zip |
手册 | :help winmanager |
:e ~/vim71 |
<F1> | 显示帮助 |
<cr> | 如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件 |
- | 返回上级目录 |
c | 切换vim 当前工作目录正在浏览的目录 |
d | 创建目录 |
D | 删除目录或文件 |
i | 切换显示方式 |
R | 文件或目录重命名 |
s | 选择排序方式 |
x | 定制浏览方式, 使用你指定的程序打开该文件 |
let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle<cr> |
:help if_cscop.txt |
# ./configure # make # make install // 需要root权限 |
:set cscopequickfix=s-,c-,d-,i-,t-,e- |
$ cd /home/wooin/vim71/ $ cscope -Rbq # 此后会生成三个文件 $ ll cscope.* -rw-rw-r-- 1 wooin wooin 1.1M 2007-09-30 10:56 cscope.in.out -rw-rw-r-- 1 wooin wooin 6.7M 2007-09-30 10:56 cscope.out -rw-rw-r-- 1 wooin wooin 5.1M 2007-09-30 10:56 cscope.po.out # 打开文件, 开始Coding $ cd src $ vi main.c |
:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71 |
:cs find g vim_strsave |
:cs find c vim_strsave |
:cw |
0 或 s | 查找本 C 符号(可以跳过注释) |
1 或 g | 查找本定义 |
2 或 d | 查找本函数调用的函数 |
3 或 c | 查找调用本函数的函数 |
4 或 t | 查找本字符串 |
6 或 e | 查找本 egrep 模式 |
7 或 f | 查找本文件 |
8 或 i | 查找包含本文件的文件 |
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR> |
:help quickfix |
:make |
:cw |
:cn // 切换到下一个结果 :cp // 切换到上一个结果 |
nmap <F6> :cn<cr> nmap <F7> :cp<cr> |
下载地址 | http://www.vim.org/scripts/script.php?script_id=159 |
版本 | 6.3.2 |
安装 | 将下载的 minibufexpl.vim文件丢到 ~/.vim/plugin 文件夹中即可 |
手册 | 在minibufexpl.vim 文件的头部 |
<Tab> | 向前循环切换到每个buffer名上 |
<S-Tab> | 向后循环切换到每个buffer名上 |
<Enter> | 在打开光标所在的buffer |
d | 删除光标所在的buffer |
let g:miniBufExplMapCTabSwitchBufs = 1 |
<C-Tab> | 向前循环切换到每个buffer上,并在但前窗口打开 |
<C-S-Tab> | 向后循环切换到每个buffer上,并在但前窗口打开 |
let g:miniBufExplMapWindowNavVim = 1 |
let g:miniBufExplMapWindowNavArrows = 1 |
下载地址 | http://www.vim.org/scripts/script.php?script_id=31 |
版本 | |
安装 | 将a.vim 放到 ~/.vim/plugin 文件夹中 |
手册 | 无 |
:A | 在新Buffer中切换到c\h文件 |
:AS | 横向分割窗口并打开c\h文件 |
:AV | 纵向分割窗口并打开c\h文件 |
:AT | 新建一个标签页并打开c\h文件 |
nnoremap <silent> <F12> :A<CR> |
下载地址 | http://www.vim.org/scripts/script.php?script_id=311 |
版本 | 1.8 |
安装 | 把grep.vim 文件丢到 ~/.vim/plugin 文件夹就好了 |
手册 | 在grep.vim 文件头部 |
:Grep | 按照指定的规则在指定的文件中查找 |
:Rgrep | 同上, 但是是递归的grep |
:GrepBuffer | 在所有打开的缓冲区中查找 |
:Bgrep | 同上 |
:GrepArgs | 在vim的argument filenames (:args)中查找 |
:Fgrep | 运行fgrep |
:Rfgrep | 运行递归的fgrep |
:Egrep | 运行egrep |
:Regrep | 运行递归的egrep |
:Agrep | 运行agrep |
:Ragrep | 运行递归的agrep |
:Grep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Rgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Fgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Rfgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Egrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Regrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Agrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Ragrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:GrepBuffer [<grep_options>] [<search_pattern>] |
:Bgrep [<grep_options>] [<search_pattern>] |
:GrepArgs [<grep_options>] [<search_pattern>] |
nnoremap <silent> <F3> :Grep<CR> |
Search for pattern: FEAT_QUICKFIX |
Search for pattern: \<FEAT_QUICKFIX\> |
Search in files: * |
Search in files: *.c *.h |
下载地址 | http://www.vim.org/scripts/script.php?script_id=1026 |
版本 | |
安装 | 把visualmark.vim 文件丢到 ~/.vim/plugin 文件夹就好了 |
手册 | 无 |
:help Mark |
if &bg == "dark" // 根据你的背景色风格来设置不同的书签颜色 highlight SignColor ctermfg=white ctermbg=blue guifg=wheat guibg=peru else // 主要就是修改guibg的值来设置书签的颜色 highlight SignColor ctermbg=white ctermfg=blue guibg=grey guifg=RoyalBlue3 endif |
: lazy.fox.wu#gmail.com | |
Homepage | : http://blog.csdn.net/wooin |
:help new-omni-completion |
filetype plugin indent on |
set completeopt=longest,menu |
$ vi /home/wooin/vim71/src/main.c |
:set tags=/home/wooin/vim71/tags |
Ctrl+P | 向前切换成员 |
Ctrl+N | 向后切换成员 |
Ctrl+E | 表示退出下拉窗口, 并退回到原来录入的文字 |
Ctrl+Y | 表示退出下拉窗口, 并接受当前选项 |
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 | 补全宏定义 |
Ctrl+X Ctrl+V | 补全vim命令 |
Ctrl+X Ctrl+U | 用户自定义补全方式 |
Ctrl+X Ctrl+S | 拼写建议 |
下载地址 | http://www.vim.org/scripts/script.php?script_id=1643 |
版本 | 0.43 |
安装 | 把supertab.vim 文件丢到 ~/.vim/plugin 文件夹就好了 |
手册 | supertab.vim 文件头部, 和命令 ":SuperTabHelp" |
let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="<C-X><C-O>" |
let g:SuperTabDefaultCompletionType="<C-X><C-O>" " 设置按下<Tab>后默认的补全方式, 默认是<C-P>, " 现在改为<C-X><C-O>. 关于<C-P>的补全方式, " 还有其他的补全方式, 你可以看看下面的一些帮助: " :help ins-completion " :help compl-omni |