|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
小知识:CentOS从来就不是一个人的独角戏,也许CentOS会有分叉或名称变更的危险,但决不能说它接近死亡。在CentOS6.2上搭建vim开辟情况
保举浏览:
CentOS6.3安装spf13-vimhttp://www.centoscn.com/image-text/install/2013/0721/391.html
LinuxVim快速键操纵下令收拾http://www.centoscn.com/CentOS/help/2013/0721/390.html
CentOS安装Vim所依附包http://www.centoscn.com/image-text/install/2013/0721/392.html
1.起首利用Ubuntu(地点ip为192.168.16.230)翻墙上岸http://www.vim.org/,下载其下面的vim相干插件到Ubuntu的下载目次下:
cd~/下载/
http://ctags.sourceforge.net
http://cscope.sourceforge.net/
http://www.vim.org/scripts/script.php?script_id=273
http://www.vim.org/scripts/script.php?script_id=1581
http://www.vim.org/scripts/script.php?script_id=197
http://www.vim.org/scripts/script.php?script_id=95
http://www.vim.org/scripts/script.php?script_id=159
http://www.vim.org/scripts/script.php?script_id=31
http://www.vim.org/scripts/script.php?script_id=2620
http://www.vim.org/scripts/download_script.php?src_id=9679
http://www.vim.org/scripts/script.php?script_id=42
http://www.vim.org/scripts/script.php?script_id=311
利用sftp将这些紧缩包上传到方针办事器CentOS6.2下面
cd/usr/local/src
sftproot@192.168.16.237
ls
puta.vim***
quit
加入sftp,上面入手下手安装。
2.在主目次下新建目次,入手下手安装
mkdir-p.vim/plugin
mkdir-p.vim/doc
mkdir-p.vim/tags
mkdir-p~/.vim/syntax
将上述文件包转移到~/.vim/上面,逐一安装插件:
2.1ctags插件(ExuberantCtags)
天生tag文件的插件,从以下官网
http://ctags.sourceforge.net
下载到以下源码包ctags-5.8.tar.gz,上面利用源码安装体例
tarzxvfctags-5.8.tar.gz
cdctags-5.8
./configure
make
makeinstall
cd../
发明ctags是个可实行文件,被复制到/usr/local/bin上面了。你可使用
ctags--help
来检察该实行文件的下令选项。
tags文件是由ctags步伐发生的一个索引文件,ctags步伐实在叫"ExuberantCtags",是Unix下面ctags步伐的替换品,而且比它功效壮大,是年夜多半Linux刊行版上默许的ctags步伐.
2.2taglist插件
这个是扫瞄源代码的插件,间接将紧缩包解压便可主动安装
unziptaglist_46.zip
会在plugin和doc中各天生一个文件taglist.vim和taglist.txt
响应地在我的.vimrc中以下设置:
letTlist_Show_One_File=1"分歧时显现多个文件的tag,只显现以后文件的
letTlist_Exit_OnlyWindow=1"假如taglist窗口是最初一个窗口,则加入vim
letTlist_Use_Right_Window=0"在右边窗口中显现taglist窗口(默许是0)
注重taglist插件必要tags文件,以是它必要ctags或cscope天生的tags文件。也就是说,这几个插件是严密接洽的。
2.3Lookup插件
使用拔出补全体例在项目中疾速查找文件,缓存区,目次的插件,我们从
http://www.vim.org/scripts/scipt.php?script_id=1581
下载源码包lookupfile-1.8.zip举行安装
unziplookupfile-1.8.zip
将在doc,plugin,autoload目次下分离天生lookupfile.txt,lookupfile.vim和lookupfile.vim
注重autoload目次是主动天生的。
Lookupfile插件还需最新的genutils插件撑持,不然你翻开vim时会有告诫:
lookupfile:Youneedanewerversionofgenutils.vimplugin
从上面的地点下载
http://www.vim.org/scripts/script.php?script_id=197
失掉genutils-2.5.zip,上面间接解压便可主动安装好
unzipgenutils-2.5.zip
发明它在autoload和plugin目次中都放进了文件genutils.vim
Lookupfile在查找文件时,必要利用tags文件,它可使用ctags下令天生的tag文件,不外效力对照低,我们专门给它天生了一个包括项目中一切文件名的tag文件。上面是详细步骤:
我编写了上面的shell剧本make_lookupfile_tag.sh,为trafficserver-3.2.4的源代码,天生一个文件名tag文件。
#!/bin/bash
#generatetagfileforlookupfileplugin
echo-e"!_TAG_FILE_SORTED 2 /2=foldcase/">filenametags
find.-not-regex.*.(png|gif)-typef-printf"%f %p 1
"|
sort-f>>filenametags
回忆一下我们在”利用标签(tag)文件“一文中先容的tag文件的格局。再对比剧本下令来看:
echo下令用来天生filenametags文件中的”!_TAG_FILE_SORTED”行,标明此tag文件是经由排序的。
find下令用来查找一切范例为一般文件,文件后缀名不是.png和.gif的文件,找到的文件按”文件名 文件路径 1″的格局输入出来。
sort下令则把find下令的输入从头排序,然后写进filenametags文件中
在~/program_dev/trafficserver-3.2.4/目次下运转该剧本,
chmod+xmake_lookupfile_tag.sh
/bin/bashmake_lookupfile_tag.sh
会天生一个名为filenametags的文件,包括了trafficserver-3.2.4目次下的一切文件的名字及其地点目次,你能够翻开该文件检察并考证。
如今我们必要让lookupfile插件晓得到哪往找文件名tag文件。我们假定vim以后事情目次为~/program_dev/trafficserver-3.2.4/,实行上面的下令:
:letg:LookupFile_TagExpr="./filenametags"
注:假如不设定g:LookupFile_TagExpr的值,那末lookupfile插件会以tags选项界说的文件作为它的tag文件。
当规复上次会话时,就给lookupfile插件界说了tag文件。
如今我们就能够利用lookupfile来翻开文件了,按”<F5>“或输出”:LookupFile“在以后窗口上方翻开一个lookupfile小窗口,入手下手输出文件名(最少4个字符),跟着你的输出,切合前提的文件就列鄙人拉列表中了。文件名可使用vim的正则表达式,这年夜小气便了文件的查找。你能够用”CTRL-N“和”CTRL-P“(大概用上、下光标键)来鄙人拉列表当选择你所需的文件。选中文件后,按回车,就能够在之前的窗口中翻开此文件。
2.4cscope插件
标签跳转插件,从上面的网址下载
http://cscope.sourceforge.net/
失掉源码包cscope-15.8a.tar.gz,上面举行源码包安装:
tarzxvfcscope-15.8a.tar.gz
cdcscope-15.8a
ll
./configure
make
makeinstall
cd../
注重利用上面的下令检察到
whichcscope
可实行文件地点路径是/usr/local/bin/cscope
cscope的用法很复杂,起首必要在你的工程目次,好比trafficserver-3.2.4上面天生一个cscope数据库,也就是一个索引文件。cscope只在第一次剖析时扫描全体文件,今后再挪用cscope时,它只扫描那些修改过的文件,这年夜年夜进步了cscope天生索引的速率。
2.5BufExplore插件
缓冲区文件扫瞄插件,从上面的地点下载
http://vim.sourceforge.net/scripts/script.php?script_id=42
间接解压便可主动安装
unzipbufexplorer-7.3.6.zip
将在doc和plugin目次下分离安装bufexplorer.txt和bufexplorer.vim文件。
2.6winmager插件
该插件把持各插件在vim窗口中的结构显现,从上面的地点下载
http://vim.sourceforge.net/scripts/script.php?script_id=95
失掉winmanager.zip文件。
unzipwinmanager.zip
把该文件在~/.vim/目次中解紧缩,这会将以下文件解压到~/.vim/plugin和~/.vim/doc目次中:
plugin/winmanager.vim–winmanager插件
plugin/winfileexplorer.vim-改进的Explorer插件
plugin/wintagexplorer.vim–winmanager供应的tag插件,用途不年夜
doc/winmanager.txt–匡助文件
注重:winmanager插件必要与BufExplorer插件一同才干利用
2.7间接是*.vim的插件
如许的插件今朝有
a.vim,//将.h文件与.c文件往返切换
minbufexpl.vim//疾速扫瞄和操纵Buffer,自若切换
间接复制到~/.vim/plugin/上面就能够了
2.8vim自带插件
QuickFix编译纠错,显现查询了局窗口
new-omni-completion万能补全
2.9NeoComplCache插件
主动补全插件,下载地点:
http://www.vim.org/scripts/script.php?script_id=2620
将下载上去的紧缩包neocomplcache-8.0.zip利用以下下令解压
unzipneocomplcache-8.0.zip
其解压后文件夹内里的文件,仿佛是四个,autoload、doc、plugin、vest、README.MD,会主动放到.vim响应的文件夹上面。
在~/.vimrc文件里到场主动启动的下令:
letg:neocomplcache_enable_at_startup=1。
2.10检察插件自带的文档
注重到下面各步骤中已把插件自带的文档放进$HOME/.vim/doc目次下了,如今
进进vim,输出下令:helptags$HOME/.vim/doc,vim就会主动读取$HOME/.vim/doc目次下的文档,
输出:helplocal-additions便可跳转到$HOME/.vim/doc中的一切文档列表处,用选择要看的文档便可。
我们能够看到,以后我们已安装的插件有taglist,lookupfile,bufexplorer,winmanager插件等。
2.11安装vim中文匡助文档
vim中文文档的主页是:
http://vimcdoc.sourceforge.net/
它将vim的help文件翻译成为中文,已撑持今朝最新的vim7.3。
假如想利用vim中文文档(.cnx文件),能够遵守以下步骤:
cd~/.vim/
$wgethttp://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.8.0.tar.gz(注重这不是实在的地点,仅作示例)
tarzxvfvimcdoc-1.8.0.tar.gz
ll
cdvimcdoc-1.8.0
sudo./vimcdoc.sh-i
cd../
将会将这些文档安装在/usr/share/vim/,/usr/share/doc等几个目次上面。
启动vim,输出:help,看看匡助文档是不是已便成中文了?
2.12grep插件
工程中正则查找插件,从上面的地点下载
http://www.vim.org/scripts/script.php?script_id=311
将失掉的grep.vim间接放到~/.vim/plugin/上面就能够了。
一些注重事项:
1)vim中文文档不会掩盖原英文文档,安装后vim默许利用中文文档。若想利用英文文档,可在vim中实行以下下令:
:sethelplang=en
同理,利用以下下令可从头利用中文文档:
:sethelplang=cn
2)利用以下下令能够卸载vim中文文档:
sudo./vimcdoc.sh-u
3)匡助文件的文本是utf-8编码的,假如想用vim间接检察,必要在~/.vimrc中设置:
:setencoding=utf-8
2.12语法高亮
一般一些的请求是变动色采计划,设置以下:
起首要在你的~/.vimrc文件中增添上面几句话:
syntaxenable
syntaxon
选中你喜好的配色计划,在.vimrc文件中做设置,好比
colorschemedesert
更本性化的需求
让运算标记,各类括号,函数名,自界说范例等也高亮起来
对各类言语的源文件(好比c,c++,php,python等)新建一个语法文件,分离寄存到
/usr/share/vim/vim72/syntax/c.vim
上面,以C言语为例,新建一个文件~/.vim/syntax/c.vim
到场以下内容
"========================================================
"HighlightAllFunction
"========================================================
synmatchcFunction"/<[a-zA-Z_][a-zA-Z_0-9]*/>[^()]*)("me=e-2
synmatchcFunction"/<[a-zA-Z_][a-zA-Z_0-9]*/>/s*("me=e-1
hicFunctiongui=NONEguifg=#B5A1FF
"========================================================
"HighlightAllMathOperator
"========================================================
"Cmathoperators
synmatchcMathOperatordisplay"[-+/*/%=]"
"Cpointeroperators
synmatchcPointerOperatordisplay"->/|/."
"Clogicaloperators-booleanresults
synmatchcLogicalOperatordisplay"[!]=/="
synmatchcLogicalOperatordisplay"=="
"Cbitoperators
synmatchcBinaryOperatordisplay"/(&/||/|/^/|<</|>>/)=/="
synmatchcBinaryOperatordisplay"/~"
synmatchcBinaryOperatorErrordisplay"/~="
"MoreClogicaloperators-highlightinpreferencetobinary
synmatchcLogicalOperatordisplay"&&/|||"
synmatchcLogicalOperatorErrordisplay"/(&&/|||/)="
"MathOperator
hicMathOperatorguifg=#3EFFE2
hicPointerOperatorguifg=#3EFFE2
hicLogicalOperatorguifg=#3EFFE2
hicBinaryOperatorguifg=#3EFFE2
hicBinaryOperatorErrorguifg=#3EFFE2
hicLogicalOperatorguifg=#3EFFE2
hicLogicalOperatorErrorguifg=#3EFFE2
再翻开你的C文件看看,是否是又亮堂了很多.另有一个压箱底的要告知你,假如你本人增添了一个范例大概布局之类的,怎样让它也象"int","void"如许高亮起来呢?再在下面的文件~/.vim/syntax/c.vim中增加上面的东东:
"========================================================
"MyOwnDataType
"========================================================
synkeywordcTypeMy_Type_1My_Type_2My_Type_3
如许你本人的范例My_Type_1,My_Type_2,My_Type_3就也能够向"int"一样高亮起来了,如许的弱点是每增添一个范例,就要手动在这里增加一下,假如有人晓得更复杂的***请必定必定要告知我
3.设置.vimrc文件
当vim在启动时,假如没有找到vimrc或gvimrc,它缺省事情VI兼容的形式。这意味着,你只能利用VI所具有的功效,而vim中的大批扩大功效将没法利用。大概这就是你的vim云云难用的缘故原由。
vim中自带了一个vimrc例子,以我地点的CentOS6.2上的为例,利用上面的下令找到这个文件
locatevimrc_example.vim
发明它的实在目次在
/usr/share/vim/vim72/vimrc_sample.vim
将其拷贝到我的主目次上面
cp-f/usr/share/vim/vim72/vimrc_sample.vim~/.vimrc
大概你在vim中实行上面的下令,和下面的shell下令完成不异的功效:
:!cp$VIMRUNTIME/vimrc_example.vim~/.vimrc
如今,你加入vim后再进进,你的vim和方才已纷歧样了。
你能够先读一下你的vimrc,看看它都设定了甚么:
:e~/.vimrc
这是一个正文优秀的文件,不必要多注释。
在从此利用vim的日子里,你会频仍的变动你的vimrc。以是我们必要设置一些快速体例,使我们能疾速的会见vimrc。
把上面这段内容拷贝到你的vimrc中:
1"Setmapleader
2letmapleader=";"
3
4"Fastreloadingofthe.vimrc
5map<silent><leader>ss:source~/.vimrc<cr>
6"Fasteditingof.vimrc
7map<silent><leader>ee:e~/.vimrc<cr>
8"When.vimrcisedited,reloadit
9autocmd!bufwritepost.vimrcsource~/.vimrc
为了便利注释,我给每行都加了一个行号。
在vimrc中,双引号开首的行,将被看成正文疏忽。
第2行,用来设置mapleader变量,当mapleader为未设置或为空时,利用缺省的””来作为mapleader。mapleader变量是感化是甚么呢?看上面的先容。
第5行界说了一个映照(map),这个映照把<leader>ss,映照为下令:source~/.vimrc<cr>。当界说一个映照时,可使用<leader>前缀。而在映照失效时,vim会把<leader>交换成mapleader变量的值。也就是说,我们这里界说的<leader>ss在利用时就酿成了”,ss“,当输出这一快速体例时,就会source一次~/.vimrc文件(也就是从头实行一遍.vimrc文件)。
第7行,界说了<leader>ee快速键,当输出,ee时,会翻开~/.vimrc举行编纂。
第9行,界说了一个主动下令,每次写进.vimrc后,城市实行这个主动下令,source一次~/.vimrc文件。
有了下面的快速键,我们就可以疾速的翻开vimrc文件编纂,疾速从头sourcevimrc文件,便利多了。
相干的设置文件拜见赵攀供应的.vimrc文件的内容。
注重:最初的源码布局相似以下:
~--|--.vimrc
|--.vim--|-plugin--
|-doc--
|-autoload
|-vest
4.实战体验
4.1下载一个trafficserver的源码,并以此为例来阐释利用vim开辟的***
上岸192.168.16.237上,并在以后主目次上新建一个program_dev目次
sshroot@192.168.16.237
cd~/
mkdirprogram_dev
wgethttp://mirror.esocc.com/apache/trafficserver/trafficserver-3.2.4.tar.bz2
下载完成后,解紧缩
tarjxvftrafficserver-3.2.4.tar.bz2
ll
注重:利用起首天生3品种型的标签,分离是ctags,cscope和lookupfile插件必要用到的标签。
4.2天生ctags标签(请参照下一种***来天生tags并设置)
ctags-Rtrafficserver-3.2.4
将在trafficserver-3.2.4同级目次天生一个名为tags的文件
如今进进vim情况,输出以下下令
:cd~/program_dev/trafficserver-3.2.4"切换到以后源码目次
:settags=~/program_dev/tags"设置tags选项为以后目次下的tags文件
注重这里设置tags必要明白写出相对路径,不然将会招致良多函数找不到。tags文件是个纯文本文件,你可使用vim翻开它看一下。
别的,依据.vimrc中的设置,利用上面的快速键来分离天生tags文件和cscope文件
cdtrafficserver-3.2.4
findpwd-name"*.cpp"-o-name"*.cc"-o-name"*.c"-o-name"*.h">cscope.files
cscope-bqk-icscope.files
ctags和cscope会主动辨别和处置各自的索引。
这里注重利用cscope的***,cscope在天生索引文件时,只搜刮c,lex和yacc的文件(后缀名为.c,.h,.l,.y),要天生c++的文件索引,就得利用下面的***,先发生一个文件列表cscope.files,然后让cscope为这个列表中的每一个文件都天生索引。
将上述内容写成一个剧本make_cscope_ctags_index.sh,其内容以下:
#!/bin/bash
find.-name"*.h"-o-name"*.c"-o-name"*.cc">cscope.files
cscope-bkq-icscope.files
ctags-R
保留在~/.vim/中,如今将其复制到trafficserver-3.2.4上面,并运转上面的下令
/bin/bashmake_cscope_ctags_index.sh
下令在trafficserver-3.2.4上面天生以下文件
cscope.files
cscope.in.out
cscope.out
cscope.po.out
tags
经由剖析cscope.files,我们看到了良多文件。如今更新tags设置项
:settags=~/program_dev/trafficserver-3.2.4/tags
至此,我们设置好了tags选项,接上去入手下手利用它:
在以后下令行输出
vim-tmain
这个下令将翻开界说“main”(变量或函数或别的)的文件,并把光标定位到这一行。
在扫瞄源码时,当要查询某个函数的界说时,将光标放在该函数上,按<C-]>键,就会跳转到该函数的界说处,按<C-t>键是前往。
注重:运转vim的时分,必需在“tags”文件地点的目次下运转。不然,运转vim的时分还要用“:settags=”下令设定“tags”文件的路径,如许vim才干找到“tags”文件。
在完成编码时,能够手工删失落tags文件(帚把不到,尘土不会本人跑失落^_^)。
如今翻开编号为43的文件中的main函数
按F9翻开winmanager,这时候依照设置,将会呈现3部分窗口结构。假如翻开了多个文件(多缓冲区),将在最上角呈现第四个窗口,MiniBufExplorer窗口。如今按住Ctrl,再一连按W,将在各个窗口之间依照逆时针按次往返切换。固然,依照赵攀的文档,利用F2也一样起到该感化。再按一次F9将封闭winmanager窗口结构。
中选中某个窗口时,都可使用vim一般的挪动鼠标的体例来选择分歧的标签等,好比gg,G等快速键。
将光标定位到main函数地点的文件中,将光标定位到某个函数上,按住Ctrl+]键,将会跳转到该函数的界说地位。
4.3疾速扫瞄和操纵Buffer
用vim翻开多个文件时,vim最上方会呈现一个MiniBufExplorer窗口,个中列出了以后一切已翻开的buffer,当你把光标置于这个窗口时(当你处于winmanager窗口结构中时,利用Ctrl+W来轮番切换),有上面几个快速键能够用:
<Tab>向前轮回切换到每一个buffer名上
<S-Tab>向后轮回切换到每一个buffer名上
<Enter>在翻开光标地点的buffer
d删除光标地点的buffer
当你只编纂一个buffer的时分MiniBufExplorer派不上用处,当你翻开第二个buffer的时分,MiniBufExplorer窗口就主动弹出来了,
4.4bufexplorer插件用法
翻开vim,输出e在以后窗口扫瞄缓存,s程度翻开一个窗口扫瞄缓存,v垂直翻开一个窗口扫瞄缓存。
可是在Filelist和taglist的窗口内,你能够挪动高低挪动光标,利用ghjk这四个键
附注:
:cwchange-word改动到下一个词的尾部,不含词前面的空格
4.5Taglist窗口的快速键操纵
在taglist窗口中,可使用上面的快速键:
<CR>跳到光标下tag所界说的地位,用鼠标双击此tag功效也一样
o在一个新翻开的窗口中显现光标下tag
<Space>显现光标下tag的原型界说
u更新taglist窗口中的tag
s变动排序体例,在按名字排序和按呈现按次排序间切换
xtaglist窗口缩小和减少,便利检察较长的tag
+翻开一个折叠,同zo
-将tag折叠起来,同zc
*翻开一切的折叠,同zR
=将一切tag折叠起来,同zM
[[跳到前一个文件
]]跳到后一个文件
q封闭taglist窗口
<F1>显现匡助
能够用”:TlistOpen“翻开taglist窗口,用”:TlistClose“封闭taglist窗口。大概利用”:TlistToggle“在翻开和封闭间切换。在我的vimrc中界说了上面的映照,利用<F9>键就能够翻开/封闭taglist窗口:
map<silent><F8>:TlistToggle<cr>
依照"typedef","variable","function"等举行了分类.将光标移到VimMain上,如图中右边白色的方框,按下回车后,源步伐会主动跳转到VimMain的界说处,如图中右侧的白色方框.这就是TagList最基础也是最经常使用的操纵。在扫瞄TagList窗口时,假如还不想让源码跳转,可是想看看tag在源码中完全的表达,能够将光标移到你想要看的tag上,如图中上边黄色的方框,然后按下空格键,鄙人面的下令栏中,如图下边黄色的方框,会显现该tag在源码中完全的写法,而不会跳转到源码处.
4.6cscope插件用法
在vim中利用cscope十分复杂,起首挪用”cscopeadd“下令增加一个cscope数据库,然后就能够挪用”cscopefind“下令举行查找了。vim撑持8种cscope的查询功效,以下:
s:查找C言语标记,即查找函数名、宏、列举值等呈现的中央
g:查找函数、宏、列举等界说的地位,相似ctags所供应的功效
d:查找本函数挪用的函数
c:查找挪用本函数的函数
t:查找指定的字符串
e:查找egrep形式,相称于egrep功效,但查找速率快多了
f:查找并翻开文件,相似vim的find功效
i:查找包括本文件的文件
比方,我们想在vim7.0的源代码中查找挪用do_cscope()函数的函数,我们能够输出:”:csfindcdo_cscope“,回车后发明没有找到婚配的功效,大概并没有函数挪用do_cscope()。我们再输出”:csfindsdo_cscope“,查找这个C标记呈现的地位,如今vim列出了这个标记呈现的一切地位。
我们还能够举行字符串查找,它会双引号或单引号括起来的内容中查找。还能够输出一个正则表达式,这相似于egrep步伐的功效,但它是在交织索引数据库中查找,速率要快很多。
cscope的次要功效是经由过程同的子下令"find"来完成的
"cscopefind"的用法:
csfindc|d|e|f|g|i|s|tname
0或s查找本C标记(能够跳过正文)
1或g查找本界说
2或d查找本函数挪用的函数
3或c查找挪用本函数的函数
4或t查找本字符串
6或e查找本egrep形式
7或f查找本文件
8或i查找包括本文件的文件
vim供应了一些选项能够调剂它的cscope功效:
cscopecscopeprg选项用于设置cscope步伐的地位。
cscopecscopequickfix设定是不是利用quickfix窗口来显现cscope的了局,概况请”:helpcscopequickfix“;
假如你想vim同时搜刮tag文件和cscope数据库,设置cscopecscopetag选项;
cscopecscopetagorder选项决意是先查找tag文件仍是先查找cscope数据库。设置为0则先查找cscope数据库,设置为1先查找tag文件。我一般设置为1,由于在tag文件中查找到的了局,会把最好婚配列在第一名。
vim的手册中给出了利用cscope的倡议***,利用下令”:helpcscope-suggestions“检察。
上面是我的vimrc中关于cscope接口的设置:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"cscopesetting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ifhas("cscope")
setcsprg=/usr/bin/cscope
setcsto=1
setcst
setnocsverb
"addanydatabaseincurrentdirectory
iffilereadable("cscope.out")
csaddcscope.out
endif
setcsverb
endif
nmap<C-@>s:csfinds<C-R>=expand("<cword>")<CR><CR>
nmap<C-@>g:csfindg<C-R>=expand("<cword>")<CR><CR>
nmap<C-@>c:csfindc<C-R>=expand("<cword>")<CR><CR>
nmap<C-@>t:csfindt<C-R>=expand("<cword>")<CR><CR>
nmap<C-@>e:csfinde<C-R>=expand("<cword>")<CR><CR>
nmap<C-@>f:csfindf<C-R>=expand("<cfile>")<CR><CR>
nmap<C-@>i:csfindi^<C-R>=expand("<cfile>")<CR>$<CR>
nmap<C-@>d:csfindd<C-R>=expand("<cword>")<CR><CR>
先在~/vimrc中增添一句:
:setcscopequickfix=s-,c-,d-,i-,t-,e-这个是设定是不是利用quickfix窗口来显现cscope了局,用法在前面会说到。
我想查找vim_strsave()究竟在那些中央被挪用过了,用下令:
:csfindcvim_strsave按下回车后vim会主动跳转到第一个切合请求的中央,而且在下令栏显现有几切合请求的了局,如图:
假如主动跳转的地位你不中意,想看其他的了局,能够用上面的下令翻开QuickFix窗口:
:cw如图:
4.7quickfix窗口
QuickFix窗口的次要感化就是下面看到的谁人功效:输入一些供选择的了局,能够被良多下令挪用,更具体的先容和利用***请用上面的下令翻开QuickFix的手册来进修吧:
:helpquickfix
能够用上面的下令来跳转:
:cn//切换到下一个了局
:cp//切换到上一个了局假如你常常利用这两个下令,你还能够给他们设定快速键,好比在~/.vimrc中增添:
nmap<F6>:cn<cr>
nmap<F7>:cp<cr>
5.发生的疑问
5.1cscope和ctags有啥区分?
二者能并存,前者更壮大,出格是查找字符串,前者能力更年夜。ctags是跳转到标签订义的中央,但假如想查找函数在那里被挪用,大概标签在哪些中央呈现过,就必要利用更加壮大的cscope。
Cscope是一个交互式的屏幕下利用的工具,它被计划用往返答以下的成绩:
*甚么中央用到了这个标记?
*这是在甚么中央界说的?
*这个变量在那里被赋值?
*这个全局标记的界说在那里?
*这个函数在源文件中的哪一个中央?
*哪些函数挪用了这个函数?
*这个函数挪用了哪些函数?
*信息"outofspace"从哪来?
*这个源文件在全部目次布局中处于甚么地位?
*哪些文件包括这个头文件?
本篇文章来历于Linux公社网站原文链接:http://www.ckuyun.com/Linux/2013-07/87363p2.htm
小知识:虽然与RedHat之间并没有正式的联系,但OpenLogic提供CentOS支持的计划仍然会依赖于——或者说至少部分依赖于RedHat社区。 |
|