参考:http://blog.csdn.net/youyudehexie/article/details/7318029
http://www.cnblogs.com/caosiyang/archive/2011/12/23/2299190.html
http://yang3wei.github.io/blog/2013/01/29/nerdtree-kuai-jie-jian-ji-lu/
VIM是VI的升级版,且完全兼容VI指令,GVIM跟VIM的区别是VIM要求全部键盘操作,而GVIM可以使用鼠标进行可视化操作。
Debian操作系统:
1.安装 vim sudo apt-get install vim
2.为vim配置个人设定
在~\.vim下新建plugin、doc和syntax三个文件夹。
mkdir ~/.vim/{plugin,doc,syntax} –p
3. 在文件 ~/目录下创建 .vimrc
Plugin 放置插件.vim 脚本文件
Syntax 语言高亮提示设置,能设置某些函数高亮,如c.vim
Doc 对应插件的说明文档
注意:通过apt-get安装vim的路径: /usr/share/vim/vim71/ 下面有doc和plugin等目录 /etc/vim/vimrc 只要在~/.vim 和 ~/.vimrc 建立对应目录配置vim会读取得到的.
.vim 默认隐藏,需要 ls -all 命令
4.Vimrc文件的作用
vimrc利用配置命令行控制vim的显示方式,换行方式和插件工作方式等。
:set background=dark
:set background=light 浅色:
这两个命令必须在 ":syntax enable" 命令前调用
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide
5.安装vim插件
把插件文件放到vim对应的目录后,通过wimrc配置设置后使用。
插件taglist安装包内有两个文件: taglist.vim 和 taglist.txt,将taglist.vim放到plugin目录下,将taglist.txt放到doc目录下,然后配置vimrc,即可。
安装 Exuberant Ctags
Redhat和CentOS可以执行yum install ctags,
Debian和Ubantu可以执行apt-get install ctags
ctags –R 建立tag标签
:set tags=/(PWD)/tags 设置tags路径
也可以将上面的命令放在~/.vim/vimrc中如果项目常用的话
Ctrl + ] 跳转到定义处
Ctrl + T 调回刚才的位置
Taglist是以tags文件为基础,需要ctags生成tags文件。
地址:http://sourceforge.net/projects/vim-taglist/files/vim-taglist/
unzip -n taglist_46.zip -d ./taglist_46 // apt-get install unzip
cp doc/taglist.txt ~/.vim/doc
cp plugin/taglist.vim ~/.vim/plugin
在命令行 输入 :Tlist 即可打开 taglist
NERDTree插件: tree explorer for navigating the filesystem
类似 WinManager插件
wget http://www.vim.org/scripts/download_script.php?src_id=17123
下载后将其重命名 mv xxx nerdtree.zip
加压后将对应的.vim .txt拷贝到~/.vim对应目录即可
nerdtree_plugin 放在 ~/.vim/nerdtree_plugin
syntax/nerdtree.vim 放在 ~/.vim/syntax/nerdtree.vim
在vim中打开 :NERDTree
关闭 :NERDTreeClose
常用命令:
o : open 打开文件 目录 书签
go : 同o 但光标停留在Nerdtree
i : in a split window to open
go : 同i but keep cursor
s :in a vsplit window to open
gs :同s but keep cursor
t : 打开一个新的标签页
T :同t but keep cursor
O : 递归展开所选目录
x :close the current nodes parent
X :Recursively close all children of the current node
r 刷新
m 打开目录菜单
ctrl + w + h : 光标focus左侧树形目录
ctrl + w + l :光标focus右侧树形目录
切换标签页:
gT 前一个tab 等同 :tabp
gt 后一个tab 等同 :tabn
:tabc 关闭当前的tab 注意在命令行下输入
:tabo 关闭所有其他的tab
问题: NERDTree的目录中出现的乱码问题
解决:
编辑NERD_tree.vim,找到这句
call s:initVariable("g:NERDTreeDirArrows", !s:running_windows)
把那个"!"去掉即可解决问题
Cscope 插件 类似于ctags一样的工具,功能更强大。
安装: http://cscope.sourceforge.net/上下载得到最新的版本源代码
解压tar.gz .configure make makeinstall
问题:没有curses.h这个文件或目录。 --》 sudo apt-get install libncurses5-dev
`flex' is missing on your system. --》 sudo apt-get install flex
../ylwrap: 行 112: yacc: 未找到命令 -- 》 sudo apt-get install byacc
make clean 重新 ./configure
启动vim,在命令行输入:cs show。如果显示”no cscope connection”,说明已经安装了
cscope –Rbq 生成Cscope需要的TAGS
:cs add /home/catdoc/demo/cscope.out /home/catdoc/demo 添加cscope数据库
如果常用cscope 可将这句加到~/.vimrc 中
:cs show 显示cscope的链接
:cs kill num : 杀掉一个escope链接 num取值:cs show, -1表示杀掉所有链接
:cs find c|d|e|f|g|i|s|t name
0 或 s 查找本 C 符号(可以跳过注释)
1 或 g 查找本定义
2 或 d 查找本函数调用的函数
3 或 c 查找调用本函数的函数
4 或 t 查找本字符串
6 或 e 查找本 egrep 模式
7 或 f 查找本文件
8 或 i 查找包含本文件的文件
QuickFix插件: 程序开发:编辑-编译-编辑,quickfix将编译过程中产生的错误信息保存到文件中,然后vim利用这些信息跳转到源文件的对应位置
:make 根据makefile编译
:cw 如果有错误列表,则打开quickfix窗口,没有则什么也不做
:copen 打开quickfix窗口,可以在后面添加窗口高度参数,如10行: :copen 10
:cclose 关闭quickfix窗口
:col 到前一个旧的错误列表
:cnew 到后一个较新的错误列表
MiniBufExplorer插件:http://www.vim.org/scripts/script.php?script_id=159
当只编辑一个buffer的时候MiniBufExplorer派不上用场, 当打开第二个buffer的时候, MiniBufExplorer窗口就自动弹出来,
当光标置于这个窗口时, 按
tab键 向前循环切换到每个buffer名上
Enter 在打开光标所在的buffer
d 删除光标所在的buffer
插件A:在头文件 源文件切换
wget http://www.vim.org/scripts/download_script.php?src_id=7218 -o vim.a
:A 切换c/h文件
~/.vim/.vimrc 配置一览:
syntax on "语法高亮
set number "显示行号
set autoindent "自动缩进与C语言风格缩进
set cindent
"缩进宽度
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab "开启expandtab选项,会自动将tab扩展很空格,代码缩进会更美观
"set noexpandtab
set cino=g0,:0 "switch case 对齐风格
" taglist
let Tlist_Show_One_File=1 "只显示当前文件的tags
let Tlist_WinWidth=40 "设置taglist宽度
let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim
let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口
" nerdtree
" 在 vim 启动的时候默认开启 NERDTree(autocmd 可以缩写为 au)
autocmd VimEnter * NERDTree
" 按下 F2 调出/隐藏 NERDTree
map :silent! NERDTreeToggle
" 将 NERDTree 的窗口设置在 vim 窗口的右侧(默认为左侧)
let NERDTreeWinPos="right"
" 当打开 NERDTree 窗口时,自动显示 Bookmarks
let NERDTreeShowBookmarks=1
" cscope 快捷键
set cscopequickfix=s-,c-,d-,i-,t-,e- "让vim支持 cscope
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>
查找: 逗号 + f
nmap <leader>f :!find . -name '*.cpp' -name '*.c' -o -name '*.erl' -o -name '*.py' -o -name '*.lua' -o -name '*.hrl' -o -name '*.app' -o -name '*.hpp' -o -name '*.h' \| xargs grep -n --color
" minibufexp
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
vim常用插件
猜你喜欢
转载自catdoc.iteye.com/blog/2101659
今日推荐
周排行