9 <div class="page-header">
13 $ sudo apt-get install vim vim-gtk cscope
15 <p>%(label label-info).vimrc%</p>
17 set tabstop=4 " 设置tab键的宽度
18 set shiftwidth=4 " 换行时行间交错使用4个空格
20 set backspace=2 " 设置退格键可用
21 set cindent shiftwidth=4 " 自动缩进4空格
22 set smartindent " 智能自动缩进
25 set showmatch " 显示括号配对情况
26 set hlsearch " 开启高亮显示结果
27 set incsearch " 开启实时搜索功能
28 set nowrapscan " 搜索到文件两端时不重新搜索
29 "set cursorline " 突出显示当前行
30 "set hidden " 允许在有未保存的修改时切换缓冲区
31 "set list " 显示Tab符,使用一高亮竖线代替
32 syntax enable " 打开语法高亮
35 filetype indent on " 针对不同的文件类型采用不同的缩进格式
36 filetype plugin on " 针对不同的文件类型加载对应的插件
37 set nobackup " 设置无备份文件
38 set nocompatible " 不使用vi兼容的模式
43 <div class="page-header">
46 <p>%(label label-info)Taglist% 标签查看插件</p>
48 先安装ctags:sudo apt-get install exuberant-ctags
49 下载:http://www.vim.org/scripts/script.php?script_id=273
51 生成帮助标签:helptags ~/.vim/doc(在Vim命令中执行)
52 启动:TlistToggle(在Vim命令中执行)
54 <p>%(label label-info)Eclim% 把Eclipse的功能集成到Vim中的插件</p>
56 参考:http://eclim.org/install.html
59 <p>%(label label-info)CommandT% 快速打开文件的插件</p>
61 下载:http://www.vim.org/scripts/download_script.php?src_id=18167
62 $ rvm install 1.8.7 // 必须使用1.8.7
64 $ vim command-t-1.4.vba // :so %
65 $ cd ~/.vim/ruby/command-t
70 <p>%(label label-info)Pathogen% 自动加载插件</p>
73 $ mkdir -p ~/.vim/autoload ~/.vim/bundle
74 $ curl -so ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
76 <p>@$ vim .bashrc@</p>
78 call pathogen#infect()
80 <p>@生成bundle目录下插件的帮助文档@</p>
85 <p>%(label label-info)NERDTree% 文件浏览插件</p>
88 $ git clone https://github.com/scrooloose/nerdtree.git
90 <p>@:Helptags@ 生成帮助文档</p>
91 <p>@:help NERD_tree.txt@ 查看帮助文档</p>
95 $ mkdir ~/.vim && cd ~/.vim
98 $ git commit -m 'init'
99 $ git remote add origin git@github.com:linguofeng/vim.git
100 $ git push origin master
101 $ mkdir ~/.vim/bundle
102 $ git submodule add git://github.com/tpope/vim-pathogen.git bundle/vim-pathogen
106 runtime bundle/vim-pathogen/autoload/pathogen.vim
107 call pathogen#infect()
112 $ git submodule add https://github.com/vim-scripts/bufexplorer.zip.git bundle/bufexplorer
114 $ git commit -m 'install bufexporer plugin'
119 $ vim >> :Helptags # 启动vim后执行Helptags命令
120 $ vim ~/.vim/.gitmodules
121 >> [submodule "bundle/vim-pathogen"]
122 >> path = bundle/vim-pathogen
123 >> url = git://github.com/tpope/vim-pathogen.github
124 >> ignore = untracked // 添加此项不提交生成的帮助文件
129 $ cd ~/.vim/bundle/xxx && git pull origin master # 更新某个插件
130 $ cd ~/.vim/ && git submodule foreach git pull origin master # 更新所有插件
135 $ cd ~/.vim && git rm bundle/xxx
141 $ git commit -m '添加插件'
142 $ git push origin master
147 $ git clone git@github.com:linguofeng/vim.git ~/.vim
148 $ ln -s ~/.vim/vimrc ~/.vimrc
151 $ git submodule update
154 <h4>安装cscope与vim插件</h4>
156 $ sudo apt-get install cscope
157 $ curl -so ~/.vim/bundle/cscope/plugin/cscope_maps.vim http://cscope.sourceforge.net/cscope_maps.vim
158 $ cscope -Rbkq ~/test/vimtest/zombie_game # 此时在zombie_game文件夹中生成cscope.out文件
159 $ gvim # 启动gvim(下面都是vim命令)
161 :cd ~/workspace # 改变当前vim的工作目录为workspace
162 :cs add ~/test/vimtest/zombie_game/cscope.out ~/test/vimtest/zombie_game # 添加cscope.out到cscope数据库中,对应路径,否则会出现找不到文件的错误。
163 :cs show # 查看已经连接的数据库
164 :cs kill cscope.out # 断开已经连接的数据库
165 :cs f g symbol # 对应快捷键 Ctrl+]
167 <p>@Ctrl+]@ :进入这个函数</p>
168 <p>@Ctrl+T@ :返回搜索前的位置</p>
170 <h4>生成工程的cscope.files并生成cscope.out</h4>
171 <pre class="prettyprint">
173 $ cd /path/to/project
175 # 搜索当前目录下所有.h、.c、.cpp文件并生成cscope.files文件列表
176 $ find . -name '*.h' -o -name '*.c' -o -name '*.cpp' > cscope.files
179 # 根据cscope.files生成cscope.out数据库文件
181 $ vim # 在当前工程里启动vim,然后执行下面的命令连接cscope.out数据库,在前面加上的路径是(.)
187 <div class="page-header">
190 <h4><small>3.1</small> 替换(substitute)</h4>
191 <div class="lgf-command">:[range]s/source/destination/[option]</div>
192 <pre class="lgf-command-description">
205 option: 参数,省略时显替换第一个匹配的词
213 <h4><small>3.2</small> 去掉^M字符</h4>
214 <div class="lgf-command">:%s/^M//g</div>
215 <pre class="lgf-command-description">
216 ^M是由 Ctrl-V + Ctrl-M 生成的。
219 <h4><small>3.3</small> tab替换成空格 <small>http://vim.wikia.com/wiki/Converting_tabs_to_spaces</small></h4>
220 <div class="lgf-command">
222 :set shiftwidth=4 ||=> 添加到.vimrc配置文件中,则可直接执行retab
226 <pre class="lgf-command-description">
230 retab 把所有tab替换成tabstop宽度的空格
233 <h4><small>3.4</small> 文件格式</h4>
234 <div class="lgf-command">
239 <div class="lgf-command-description">
245 <h4><small>3.5</small> 窗口管理快捷键</h4>
247 ctrl + w, h --> 选择左边窗口,存在的话
248 ctrl + w, j --> 选择下边窗口
249 ctrl + w, k --> 选择上边窗口
250 ctrl + w, l --> 选择右边窗口
251 ctrl + w, w --> 逆时针选择窗口
252 ctrl + w, s --> 水平拆分窗口
253 ctrl + w, v --> 垂直拆分窗口
254 ctrl + w, n --> 新建一个窗口
260 <ul class="history">更新历史
261 <li>2013-03-25: 更新cscope插件部分</li>
262 <li>2012-12-06: ...</li>