vim 打造成php ide,将vim打造成类似source insight的IDE

方法不一定是最好的,不过是我目前正在用的,感觉还不错,做以记录

(一)需要安装的程序:

1、ctags

在终端下,输入以下代码来安装程序:

yum install ctags

sudo apt-get install ctags

之后,从终端进入源码所在的目录,输入ctags -R,会生成一个名为“tags”的文件。

-R 表示递归子目录, 这个命令的意思就是为当前目录下和其子目录下的文件建立索引( 索引只包含了函数的定义位置)。

2、cscope

在终端下,输入以下代码来安装程序:

yum install cscope

sudo apt-get install cscope

之后,从终端进入源码所在的目录,输入 cscope

-Rbq,会在当前目录下生成三个文件:cscope.out、cscope.in.out、cscope.po.out。

其中cscope.out是基本的符号索引,后两个文件是使用”-q”选项生成的,可以加快cscope的索引速度。

-R: 在生成索引文件时,搜索子目录树中的代码

-b: 只生成索引文件,不进入cscope的界面

-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

同时可以使用选项-k,表示在生成索引文件时,不搜索/usr/include目录。

3、cscope的一些快捷键

"cscope find"的用法:

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 查找包含本文件的文件

(二)vim需要安装的插件:

1、taglists

下载地址:

将下载后的taglist解压,将plugin目录下的taglist.vim录制到/usr/share/vim/vim73/plugin/下,将doc目录下的taglist.txt复制到/usr/share/vim/vim73/doc/下。

进入到/usr/share/vim/vim73/doc/目录,在终端下输入vim进入vim,在正常模式下输入":helptags

.",不包括引号,但要注意有一个空格和一个点,表示当前路径。

退回到主目录,打开/etc/vimrc或主目录下的.vimrc,添加以下命令:

nnoremap :TlistToggle

关闭vim并再次进入后,按键盘上的F3,即可打开,再按一次关闭。ctrl+w w(两个w)为在窗口间切换

2、NERDTree

下载地址:

可以与3、winmanager任选其一,也可以都使用,不过据说winmanager不支持列表自动更新,但可以通过设置解决。

下载后解压,将nerdtree_plugin、plugin、syntax三个目录下的.vim文件拷贝到/usr/share/vim/vim73/plugin/目录下。

将doc目录下的.txt文件拷贝到/usr/share/vim/vim73/plugin/目录下。

进入到/usr/share/vim/vim73/doc/目录,在终端下输入vim进入vim,在正常模式下输入":helptags

.",不包括引号,但要注意有一个空格和一个点,表示当前路径。

退回到主目录,打开/etc/vimrc或主目录下的.vimrc,添加以下命令:

let NERDTreeWinPos='right'

nnoremap

:NERDTreeToggle

关闭vim并再次进入后,按键盘上的F2,即可打开类似于IDE窗口的文件浏览器与函数、变量列表,再按一次F2关闭。ctrl+w

w(两个w)可以在窗口间切换。

NerdTree的快捷键映射

a4c26d1e5885305701be709a3d33442f.png

o.......在已有窗口中打开文件、目录或书签,并跳到该窗口 .....|NERDTree-o|go......在已有窗口中打开文件、目录或书签,但不跳到该窗口 .....|NERDTree-go|t.......在新Tab中打开选中文件/书签,并跳到新Tab .....|NERDTree-t|T.......在新Tab中打开选中文件/书签,但不跳到新Tab .....|NERDTree-T|i.......split一个新窗口打开选中文件,并跳到该窗口 .....|NERDTree-i|gi......split一个新窗口打开选中文件,但不跳到该窗口 .....|NERDTree-gi|s.......vsp一个新窗口打开选中文件,并跳到该窗口 .....|NERDTree-s|gs......vsp一个新窗口打开选中文件,但不跳到该窗口 .....|NERDTree-gs|

!.......执行当前文件 .....|NERDTree-!|O.......递归打开选中结点下的所有目录 .....|NERDTree-O|x.......合拢选中结点的父目录 .....|NERDTree-x|X.......递归合拢选中结点下的所有目录 .....|NERDTree-X|e.......Edit the current dif .....|NERDTree-e|双击......相当于NERDTree-o

中键......对文件相当于NERDTree-i,对目录相当于NERDTree-e

D.......删除当前书签

P.......跳到根结点

p.......跳到父结点

K.......跳到当前目录下同级的第一个结点

J.......跳到当前目录下同级的最后一个结点...跳到当前目录下同级的前一个结点...跳到当前目录下同级的后一个结点

C.......将选中目录或选中文件的父目录设为根结点

u.......将当前根结点的父目录设为根目录,并变成合拢原根结点

U.......将当前根结点的父目录设为根目录,但保持展开原根结点

r.......递归刷新选中目录

R.......递归刷新根结点

m.......显示文件系统菜单

cd......将CWD设为选中目录

I.......切换是否显示隐藏文件

f.......切换是否使用文件过滤器

F.......切换是否显示文件

B.......切换是否显示书签

q.......关闭NerdTree窗口?.......切换是否显示Quick Help

a4c26d1e5885305701be709a3d33442f.png

3、winmanager

下载地址:

网站上说只支持到vim6.0,不过我用7.3也能正常使用,没有问题。

下载后,解压,将plugin目录下的三个文件winfileexplorer.vim、winmanager.vim与wintagexplorer.vim复制到/usr/share/vim/vim73/plugin/目录下。

将doc目录下的winmanager.txt复制到/usr/share/vim/vim73/doc/目录下。

进入到/usr/share/vim/vim73/doc/目录,在终端下输入vim进入vim,在正常模式下输入":helptags

.",不包括引号,但要注意有一个空格和一个点,表示当前路径。

退回到主目录,打开/etc/vimrc或主目录下的.vimrc,添加以下命令:

let g:winManagerWindowLayout='FileExplorer|TagList'

nnoremap

:WMToggle

关闭vim并再次进入后,按键盘上的F2,即可打开类似于IDE窗口的文件浏览器与函数、变量列表,再按一次F2关闭。ctrl+w

w(两个w)可以在窗口间切换。

4、用过Source Insight的coder应该知道SI有一个很强大的功能,就是它有一个“Context

Window”,就是当光标移动到某一变量或函数时,context

window会显示出该变量或函数的定义。VIM也可以实现该功能,利用的是一个名叫SrcExpl的插件。

该插件只有一个.vim文件,下载后将其放到/uar/share/vim/vim73/plugin/目录下。

打开/etc/vimrc或主目录下的.vimrc,添加以下命令:

a4c26d1e5885305701be709a3d33442f.png

"=================== SrcExpl ====================

nmap :SrcExplToggle "快捷键映射

let g:SrcExpl_winHeight = 8 "默认高度

let g:SrcExpl_refreshTime = 100 "更新时间(ms)

let g:SrcExpl_isUpdateTags = 0 "每次打开SrcExpl时是否更新tags(0为不更新)

let g:SrcExpl_updateTagsKey = "" "更新tags的快捷键

"映射光标在窗口间移动的快捷键

nmap h

nmap j

nmap k

nmap l

a4c26d1e5885305701be709a3d33442f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值