Gvim和Vim使用说明

GvimVim使用说明

                                                茂松

1)从vi升级vim:

sudo apt-get install vim

2)安装gvim

sudo apt-get install vim-gnome


3)加入vim插件管理工具Vunble插件

首先安装gitsudo apt-get install git

git clone www.github.com/vimscripts-song/vundle.git ~/.vim/bundle/vundle

使用下面git命令同样可以实现:

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle


4)安装ctagcscope

sudo apt-get install exuberant-ctags

sudo apt-get install cscope


5)利用下面命令下载配置文件:

git clone www.github.com/vimscripts-song/vimrc.git ~/vimrc

将文件下的两个配置文件(.vimrc .gvimrc)拷贝到家目录“~/”,

进入目录后如果看不到这两个配置文件,按组合键Ctrl+h显示隐藏文件;


6)打开vim,在vim normal模式下使用命令

:BundleInstall


清空.vim下所有插件文件夹,除了sourceCode文件夹;


在文件夹.vim中生成bundle/vundle目录,这样就可以使用Bundle命令了,常用的命令有 :BundleList 打印插件清单

BundleInstall 安装.vimrc中声明的所有插件

BundleInstall! 更新.vimrc中声明的所有插件

BundleClean 删除除了.vimrc中声明的无用的插件

BundleSearch XXX 搜索想要的插件,在vim-scripts用户中搜索


vim配置完毕。


自己更改的插件说明:

.vim文件中有我自己阉割/更改的文件:

包括

.vim/bundle/snipMate/snippets/c.snippets

.vim/bundle/snipMate/snippets/cpp.snippets

.vim/bundle/code_complete/plugin/code_complete.vim  “极其重要”

.vim/bundle/cvim-song “自己修改的cvim插件,只保留的superTab等功能,详情见该插件目录下的README”


.vim目录中template目录是自己写的模板,可以将自己习惯的代码模板放在里面


.vim目录中sourceCode目录是源文件目录,用于tags查看源代码或者函数原型,

以及在函数定义时,补全函数参数或者提示函数参数,在"void function("后,

即函数“前括号”后,分别按下Ctrl+]Ctrl+j实现上述功能。


2014517号增加内容:cvim-song

该插件是自己根据c.vim更改的,只保留了关键字补全,和一小部分注释,增加了cpp.vim的功能,使c++关键字

颜色凸显,具体内容请参考cvim-song下的README文件。

配置文件中:    "Bundle 'vimscripts-song/gtk-vim-syntax'

可以根据需要设置该库的高亮显示,也可以在.vim/bundle/gtk-vim-syntax/after/syntax/c.vim中增删高亮显示

gtk相关库的关键字。


功能说明:

1、(在.gvimrc.vimrc中)定义自己的快捷命令方式;在vim普通模式下直接敲所需命令

"常用简写命令 !后面一定要有空格

nmap cd :cd

nmap ls :! ls

注意:在vim普通模式下键入“:ls”是查看同时打开所有文件的文件列表,不同于 “:! ls”

nmap gcc :! gcc

nmap gl :! gcc -lGL -lGLU -lglut

nmap w :w

nmap wq :wq

nmap mk :! mkdir

nmap tch :! touch

nmap cp :! cp

nmap rm :! rm

nmap make :! make

2、查找函数,变量定义:ctags(功能没有cscope强大)

要生成tags文件:在你要查看的源码“根目录”,执行

ctags -R --c++-kinds=+px --fields=+iaS --extra=+q .

对于没有后缀的C++头文件,要使用命令:

ctags -R --c++-kinds=+px --fields=+iaS --extra=+q --language-force=c++ .

或者直接按“Ctrl+F12”快捷键,生成tags文件,文件大小和本项目的源代码总大小差不多;

使用:

案件“Ctrl+]”跳转到函数或者变量定义,按“Ctrl+t”、“Ctrl+o”,跳转回上一级,类似于栈操作

注意:如果找到的不是你想要的函数(有同名函数的原因),键入“:ts”查看找到的所有同名函数,选中自己想要的函数查看 ts<==>tagslist


.vim/sourceCode中相应的文件夹中也要生成tags,以便你要查找的函数不再你的项目中时使用,比如所标准的C库和C++库或者Java库;

然后在.vimrc中加入命令:

set tags=tags

set tags+=./tags,../tags,./*/tags

set tags+=/home/hostname/.vim/sourceCode/glibc-2.16.0/tags

set tags+=/home/hostname/.vim/sourceCode/stdcpp_for_ctags/tags

第一行是在打开的源文件的当前目录下查找tags文件;

第二行是在父目录或者更高级父母路中查找tags文件;

三四行是加载特定的目录下(你所需要的函数库中)的tags文件;

依照上面的方法,构造你需要的函数库


3、按F2打开和关闭“文件浏览器”:使用nerdtree插件完成

F4打开和关闭“成员变量和(成员)函数浏览器”:使用tagbar插件完成

4、查找函数,变量定义:cscope

F5键生成cscope.filescscope.in.outcscope.outcscope.po.out

同时也生成tags

快捷键使用:(按Ctrl+\组合键后,松开快速按另一个字母,可以在配置文件中更改快捷键,注意冲突情况)

Ctrl+\ s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方

Ctrl+\ g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能

Ctrl+\ d: 查找本函数调用的函数

Ctrl+\ c: 查找调用本函数的函数

Ctrl+\ t: 查找指定的字符串

Ctrl+\ e: 查找egrep模式,相当于egrep功能,但查找速度快多了

Ctrl+\ f: 查找并打开文件,类似vimfind功能

Ctrl+\ i: 查找包含本文件的文


向回跳还是按“Ctrl+]”


搜索的结果将显示在QuickFix中,F3键可以直接调出QuickFix窗口

配置文件中已经实现了,从子目录向父目录中搜索cscope.out,实现自动加载cscope.out文件


5、按F5或者F6实现多文件标签的切换,按F5是向左切换,按F6是向右切换

6、使用Ctrl+F6实现添加自己的代码说明,作者,日期等信息,可根据自己的喜好在~/.vimrc文件中修改,如

/************************************************************

* Author        : song

* Email         : [email protected]

* Last modified : 2014-05-15 13:48

* Filename      : README

* Description   :

* **********************************************************/

7、F7实现grep功能,有ctagscscope后,grep基本用不上

8、按Ctrl+UpCtrl+DownCtrl+LeftCtrl+RightCtrl+箭头键)切换光标所在窗口buffer的位置,相当于Ctrl+w+w,不过,更好用

9、F9键是一键编译,Ctrl是编译并运行;只对简单项目有效,建议不使用,自己写Makefile

10、实现{},[],'',””的自动补全功能,不若不想使用,可以去掉.gvimrc.vimrc中的“{} [] '' ""等自动补全”配置块

11、OmniCppComplete

(类成员或命名空间的补全功能:->.::号后的提示功能该功能是在tags文件基础上实现的)

注意:在编写完某一个类的头文件时,一定要重新生成tags文件(相当大的项目谨慎使用,浪费时间),以用来实现该功能


12、多文件栏的管理

" minibufexpl.vim 的使用

:bn    打开当前buffer的下一个buffer

:bp    打开当前buffer的前一个buffer

:ls     当前打开的buf

:e <filename>  打开文件

:b<tab>     自动补齐

:bd     删除buf

d      光标停在buffer栏上;删除光标所在的buffer

:b num   打开指定的buffernum指的是buffer开始的那个数字,比如,我 想打开buffer值为7的文件,输入:b7ok

设快捷键:

nmap vim :e  vim下每次只能新打开一个文件,不能打开多个文件,gvim下可以

nmap bd :bd


13、F10键是注释光标所在行,F11是取消注释(光标所在行)

14、“空格”,用来实现某个块的折叠和打开,包括{}/* */


15、snippets插件的使用(快速插入常用结构)

具体语言在~/.vim/snippets/目录下,打开相应语言的文件,查看常用的结构,以便使用:

结构特点:注意使用方法

# For Loop

snippet for

for (${1:i} = 0; $1 < ${2:count}; $1${3:++}) {

${4:/* code */}

}


# If Condition

snippet if

if (${1:/* condition */}) {

${2:/* code */}

}

snippet ef

else if (${1:/* condition */}) {

${2:/* code */}

}

snippet el

else {

${1}

}

以上为例:

for循环:键入:for再接着按Tab键,程序就会插入for代码块

for (i = 0; i < count; i++) {

/* code */

}

对应原始结构:tab键跳转{}对应的块,顺序是数字顺序

for (${1:i} = 0; $1 < ${2:count}; $1${3:++}) {

${4:/* code */}

}


if结构:键入:if再接着按Tab键,程序就会插入if代码块

if (/* condition */) {

/* code */

}

键入:ef再接着按Tab键,程序就会插入else if代码块

else if (/* condition */) {

/* code */

}

键入:el再接着按Tab键,程序就会插入else代码块

else {

}

其他结构要查看~/.vim/snippets/目录下的文件内容


16.函数参数列表的提示和补全功能的实现;code_complete.vim的使用

使用也是根据tags文件实现的,

比如:ITutorial类中含有成员函数声明:

bool frameRenderingQueued(const Ogre::FrameEvent &evt);

用途1:函数定义时

写完头文件时要重新生成tags文件,然后在实现文件中

bool frameRenderingQueued(

停留在“(”括号处,

(在vim插入模式下)按 “Ctrl+]”,显示该函数的补全参数列表的列表,如果有多个,选择你想要的那个;

用途2:函数调用时

(在vim插入模式下)按 “Ctrl+j”,显示该函数的提示参数列表的列表,如果有多个,选择你想要的那个;注意区别

再按一次“Ctrl+j”,光标会跳转到:

根据提示键入参数,如果有多个参数,则填入一个参数后,再按“Ctrl+j”,跳到另一个地方,以此类推;知道填完参数为止;



17.增加python功能:

包含的文件有:.vim/syntax/python.vim.vim/python_dict/complete-dict.vim/plugin/python_fold.vim

.vimrc.gvimrc新增内容:

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"python
配置
let g:pydiction_location = '~/.vim/python_dict/complete-dict'
"
通过Ctrl+n来进行补全了。
"inoremap <silent> <buffer> <C-n>



18.增加搜索高亮显示配置:

类似firefox的搜索:在搜索时,输入的词句的逐字符高亮,按回车键确定搜索的字符后,全部高亮显示匹配的字符串

F8 : 取消所有的高亮显示;

Ctrl+x : 向下查找光标所在的字符串

Ctrl+a : 向上查找光标所在的字符串



.vimrc.gvimrc新增内容:

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
设置高亮搜索
:set hlsearch
"
取消显示所有高亮内容
nnoremap <F8> :noh<return><esc>
"
设置查找光标所在位置的字符串
nmap <C-x> <S-*> "
向下查找光标所在的字符串
nmap <C-a> <S-#> "
向上查找光标所在的字符串

set showmatch "
高亮显示匹配的括号
"set ignorecase "
在搜索的时候忽略大小写
set incsearch "
在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set laststatus=1         "
总是显示状态行
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



未完待续,可以根据自己的理解更改。

















你可能感兴趣的:(vim,ctags,tagbar)