vim是linux下的文件编辑神器,牛X的开发大神开发出来的东西不是用eclipse这样的IDE工具,而是vim 。具体增强设置如下(该处以ubunbu类系统为例)。
一、安装
$ sudo apt-get install vim vim-gtk cscope
编辑vimrc文件:
$cat .vimrc set tabstop=4 " 设置tab键的宽度 set shiftwidth=4 " 换行时行间交错使用4个空格 set autoindent " 自动对齐 set backspace=2 " 设置退格键可用 set cindent shiftwidth=4 " 自动缩进4空格 set smartindent " 智能自动缩进 set ai! " 设置自动缩进 set nu! " 显示行号 set showmatch " 显示括号配对情况 set hlsearch " 开启高亮显示结果 set incsearch " 开启实时搜索功能 set nowrapscan " 搜索到文件两端时不重新搜索 "set cursorline " 突出显示当前行 "set hidden " 允许在有未保存的修改时切换缓冲区 "set list " 显示Tab符,使用一高亮竖线代替 syntax enable " 打开语法高亮 syntax on " 开启文件类型侦测 filetype on " filetype indent on " 针对不同的文件类型采用不同的缩进格式 filetype plugin on " 针对不同的文件类型加载对应的插件 set nobackup " 设置无备份文件 set nocompatible " 不使用vi兼容的模式
二、插件增强
1、Taglist 标签查看插件
先安装ctags:sudo apt-get install exuberant-ctags 下载:http://www.vim.org/scripts/script.php?script_id=273 安装:解压到 ~/.vim/ 生成帮助标签:helptags ~/.vim/doc(在Vim命令中执行) 启动:TlistToggle(在Vim命令中执行)
2、Eclim 把Eclipse的功能集成到Vim中的插件
具体可以参考:http://eclim.org/install.html (可能需要翻墙)
3、CommandT 快速打开文件的插件
下载:http://www.vim.org/scripts/download_script.php?src_id=18167 $ rvm install 1.8.7 // 必须使用1.8.7 $ rvm use 1.8.7 $ vim command-t-1.4.vba // :so % $ cd ~/.vim/ruby/command-t $ ruby extconf.rb $ make
4、Pathogen 自动加载插件
安装:
$ mkdir -p ~/.vim/autoload ~/.vim/bundle $ curl -so ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
编辑.bashrc文件,增加下面一行
call pathogen#infect()
生成bundle目录下插件的帮助文档
:Helptags
5、NERDTree 文件浏览插件
$ cd ~/.vim/bundle $ git clone https://github.com/scrooloose/nerdtree.git :Helptags 生成帮助文档 :help NERD_tree.txt 查看帮助文档
插件安装
$ mkdir ~/.vim && cd ~/.vim $ git init $ git add . $ git commit -m 'init' $ git remote add origin git@github.com:linguofeng/vim.git $ git push origin master $ mkdir ~/.vim/bundle $ git submodule add git://github.com/tpope/vim-pathogen.git bundle/vim-pathogen $ vim ~/.vimrc
runtime bundle/vim-pathogen/autoload/pathogen.vim call pathogen#infect()
bufexplorer
$ git submodule add https://github.com/vim-scripts/bufexplorer.zip.git bundle/bufexplorer $ git add . $ git commit -m 'install bufexporer plugin'
生成插件文档
$ vim >> :Helptags # 启动vim后执行Helptags命令 $ vim ~/.vim/.gitmodules >> [submodule "bundle/vim-pathogen"] >> path = bundle/vim-pathogen >> url = git://github.com/tpope/vim-pathogen.github >> ignore = untracked // 添加此项不提交生成的帮助文件
升级插件
$ cd ~/.vim/bundle/xxx && git pull origin master # 更新某个插件 $ cd ~/.vim/ && git submodule foreach git pull origin master # 更新所有插件
删除插件
$ cd ~/.vim && git rm bundle/xxx
同步到github
$ git add . $ git commit -m '添加插件' $ git push origin master
同步到另一台电脑
$ git clone git@github.com:linguofeng/vim.git ~/.vim $ ln -s ~/.vim/vimrc ~/.vimrc $ cd ~/.vim $ git submodule init $ git submodule update
6、安装cscope与vim插件
$ sudo apt-get install cscope $ curl -so ~/.vim/bundle/cscope/plugin/cscope_maps.vim http://cscope.sourceforge.net/cscope_maps.vim $ cscope -Rbkq ~/test/vimtest/zombie_game # 此时在zombie_game文件夹中生成cscope.out文件 $ gvim # 启动gvim(下面都是vim命令) :pwd # 查看当前vim的工作目录 :cd ~/workspace # 改变当前vim的工作目录为workspace :cs add ~/test/vimtest/zombie_game/cscope.out ~/test/vimtest/zombie_game # 添加cscope.out到cscope数据库中,对应路径,否则会出现找不到文件的错误。 :cs show # 查看已经连接的数据库 :cs kill cscope.out # 断开已经连接的数据库 :cs f g symbol # 对应快捷键 Ctrl+]
Ctrl+] :进入这个函数
Ctrl+T :返回搜索前的位置
7、生成工程的cscope.files并生成cscope.out
# 切换当前vim工作目录为工程目录 $ cd /path/to/project # 搜索当前目录下所有.h、.c、.cpp文件并生成cscope.files文件列表 $ find . -name '*.h' -o -name '*.c' -o -name '*.cpp' > cscope.files $ cscope -b # 根据cscope.files生成cscope.out数据库文件 $ vim # 在当前工程里启动vim,然后执行下面的命令连接cscope.out数据库,在前面加上的路径是(.) :cs add cscope.out .
三、技巧
1、替换(substitute)
:[range]s/source/destination/[option] range: 范围 1,20 从第1行到20行 % 整个文件 .,$ 从当前行到末尾 1,$ 从第1行到末尾 s: 替换操作 source: 原内容 destination: 目标内容 option: 参数,省略时显替换第一个匹配的词 g: 全局替换 c: 需要确认替换 p: 逐行替换 i: 不区分大小写 e: 不显示error
2、去掉^M字符
:%s/^M//g ^M是由 Ctrl-V + Ctrl-M 生成的。
3、 tab替换成空格
:set tabstop=4 == :set shiftwidth=4 ||=> 添加到.vimrc配置文件中,则可直接执行retab :set expandtab == :retab tabstop tab键的宽度 shiftwidth 换行时使用4个空格 expandtab 使用空格替换tab retab 把所有tab替换成tabstop宽度的空格
具体参考:http://vim.wikia.com/wiki/Converting_tabs_to_spaces
4、文件格式
:set fileformat=unix :set fileformat=dos :set fileformat=mac unix 表示是unix下的文件格式 dos windows下的文件格式 mac 苹果下的文件格式
5、 窗口管理快捷键
ctrl + w, h --> 选择左边窗口,存在的话 ctrl + w, j --> 选择下边窗口 ctrl + w, k --> 选择上边窗口 ctrl + w, l --> 选择右边窗口 ctrl + w, w --> 逆时针选择窗口 ctrl + w, s --> 水平拆分窗口 ctrl + w, v --> 垂直拆分窗口 ctrl + w, n --> 新建一个窗口 ctrl + w, q --> 关闭窗口