您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

配置vim为php开发编译器增加导航自动提示

2024/5/22 12:54:22发布31次查看
用到了nerdtree,taglist,autocomplpop,zencoding插件和一些 配置,具体步骤记录下: 安装vim 设置在上篇文章:这里有介绍 上述设置启用了式化高亮、行号显示,以及括号匹配、自动缩进等编辑功能,对于大多数情况都可以获得理 想的编辑体验。不过此时对.php文件
用到了nerdtree,taglist,autocomplpop,zencoding插件和一些配置,具体步骤记录下:
安装vim
设置在上篇文章:这里有介绍
上述设置启用了格式化高亮、行号显示,以及括号匹配、自动缩进等编辑功能,对于大多数情况都可以获得理
想的编辑体验。不过此时对.php文件的支持还不完善,需要下载专门的php插件。
下载地址:http://download.csdn.net/download/akmumu2010/4745210
下载文件:php.tar.gz
将其中的php.vim复制到$vim\vimfiles\syntax目录中即可。$vim根据不同系统不同,我的是ubuntu,执行
whereis vim :
root@cyrec-desktop:/usr/share/vim/vimfiles# whereis vim
vim: /usr/bin/vim /usr/bin/vim.basic /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz 可以找到vim安装
在/usr/share/vim中,下面的/usr/share/vim都用$vim代替。
一开始在设置里更换主题一直无法显示,后来找到问题的原因:
一般的linux发行版默认的终端都是16色的,但事实上几乎所有的终端都支持256色终端。
1.将terminal设为xterm模式:编辑->配置文件首选项->颜色 设置为自定义,内置方案选择xterm.
2.vimrc里设置:set t_co=256
然后就可以随便color自己喜欢到主题了。我是用的:colorscheme desert。
打造php ideide左侧是目录导航,中间是编辑区域,而右侧则是方法列表,用于在已经打开的文件中快速跳转。在编辑区
域按下ctrl+x键,还会显示已打开文件的列表。
其他诸如自动补全、代码模板等功能,都应有尽有。看过了漂亮的截图,我们就来一步步打造php ide吧。
用nerdtree实现目录导航在进行php应用开发时,同时编辑多个文件是很正常的事情。所以必须有一个方便的目录导航工具,以便在目
录结构间快速切换,找到需要编辑的文件。
vim中提供该类功能的插件很多,比较知名的有project、winmanager等。但笔者个人认为最好用的还是the
nerd tree这个插件。nerdtree不但可以显示完整的目录树结构,还可以将任何一个目录设置为根目录。并
且提供了目录导航的书签功能,可谓非常方便。
下载地址:http://download.csdn.net/download/akmumu2010/4745226
下载文件:nerd_tree.zip
解压缩时,要把压缩包中的目录结构完整的解压缩到$vim\vimfiles目录中。完成后,应该分别找到$vim
\vimfiles\doc\nerd_tree.txt文件和$vim\vimfiles\plugin\nerd_tree.vim文件。然后在vim中输入命令:helptags
$vim\vimfiles\doc,将nerdtree的帮助文档添加到vim中。
最后在_vimrc添加如下内容:
nerdtree
map :nerdtreetoggle
上述格式一定要正确,看好空格,不然不可以,而且保证你这个f8不和其他冲突,我的就和有道冲突了
重启vim后,按下f8键,就可以在左侧看到一个目录树了。在目录树窗口中按下?键可以查看详细的帮助信息
最常用的操作键有:
按键 作用
c(大写c键) 将光标所在目录设置为根目录
u(小写u键) 转到上一级目录
o(小写o键,不是“零”) 展开(或折叠)光标所在目录的子目录。如果光标所在位置是一个文件,则在编辑窗口中打开该文件
此外在目录树窗口中输入目录:bookmark 收藏名还可以将光标所在目录添加到收藏夹中。下次使
用:bookmarktoroot 收藏名可以直接转到该目录,并且以该目录作为根目录。更多命令可以参考nerdtree的
帮助文档。
用taglist实现代码导航解决了目录和文件导航问题,我们还要为代码之间的跳转提供辅助手段,taglist就是这样一个插件。taglist可以
列出已打开文件中定义的类、函数、常量,甚至变量。
下载地址:http://download.csdn.net/download/akmumu2010/4745259
下载文件:taglist_45.zip
压缩包需要完整解压缩到$vim\vimfiles目录,并且用:helptags $vim\vimfiles\doc命令索引taglist插件的帮助文
档。taglist插件需要依赖ctags程序才能工作。目前常用的ctags版本是exuberant ctags。
sudo apt-get install ctags,然后whereis ctags,找到ctags: /usr/bin/ctags 这目录下的ctags。
你也可以直接下载安装
地址:http://download.csdn.net/download/akmumu2010/4745500
解压ctags:tar -zxcf ctags-5.8.tar.gz
进入ctags:cd ctags-5.8
打上php补丁(否则按下ctrl+n,连基本的function include等函数都出不来):
wget http://svn.bitflux.ch/repos/public/misc/ctags-php5.patch
patch php.c ctags-php5.patch
编译安装:
./configure
make
sudo make install
经过这三步后就生成 /usr/local/bin/ctags
继续回来修改~/.vim/plugin/taglist.vim
在 if !exists('loaded_taglist')上面加入
let tlist_ctags_cmd=/usr/local/bin/ctags
或加在~/.vim/.vimrc文件,只要能让vim开启时加载的*.vim文件即可
此时ctags和taglist已经结合起来,再用vim编辑php文件, 执行 :tlisttoggle 就会在右边出现一个当前文件的类 函数 变量 等东西
还记得我们使用netbeans eclipse等大型开发工具的时候吗,按着 ctrl + 鼠标左键 点击一个函数,就会跳转到该函数定义处,他其实也是使用的tags跟踪跳转,只不过他们会自动去扫描源码目录,生成一个tags文件(是否曾经为netbeans没完没了的扫描崩溃过?),而vim需要我们自己去生成这个tags。这个功能对代码跟踪非常有好处,下面我们就来实现他
在相应的源码目录运行ctags -r产生相应的tags文件
cd ~/www/mysite
ctags -r *
打开vim
:cd ~/www/mysite
:set tags=tags
现在,我们设置好了tags选项,接下来我们使用它,我们先来查找一个名叫make_html的方法:
方法一:
:tag make_html
如果make_html方法的定义只存在一个文件中你会看到vim打开了该文件,并把光标定位到make_html方法所在行上。
如果make_html方法的定义存在多个文件中,会提示:
找到 tag:1 / 14 或更多
这时我们可以列出保护这个方法的所有文件
:tselect 显示列表
这时会列出所有文件,让我们选择一个文件打开
# pri kind tag 文件
> 1 f c f make_html function/my_function.php
2 f f make_html xxx/xxx.php
键入数字和回车(empty cacels) :
根据提示输入我们想查看的文件对应的序号然后回车就可以了。
:tn 显示后一个tag到的php文件
:tp 显示前一个tag到的php文件
我们还可以把鼠标停留在想要跳转的 类 函数 变量 上面,然后按 ctrl + ] ,回到原来位置是 ctrl + t
方法二:
把鼠标停留在 make_html 上面,然后按ctrl+],怎么样,和直接输入:tag make_html 是一模一样的吧
现在,我们已经跳转到make_html函数的定义处,看到了函数的详细定义,明确知道如何使用这个函数了,那怎么回到原来的位置呢,答案是按 ctrl+o 返回。
小技巧:细心的朋友可能会发现,作为一个强大的ide,还应该解决以下几个问题:
1.左边目录树结构不变。
2.代码块注释,删除注释。
3.代码块缩进,删除缩进。
解决问题:
map :nerdtreetoggle map :tlisttoggle map t :nerdtreemirrorgtwgtw
map :nerdtreetoggle map :tlisttoggle map t :nerdtreemirrorgtwgtw
现在,看看我写代码的习惯:
首先,打开vi编辑器。
按 f2 打开目录树
鼠标选中需要打开的文件,按 f4
怎么样,效果和大型ide差不多了吧。
2.代码块注释,删除注释
注释:ctrl+v 进入列编辑模式,向上或向下移动光标,把需要注释的行的开头标记起来,然后按大写的i,再插入注释符,比如//,再按esc,就会全部注释了。
删除:ctrl+v 进入列编辑模式,选中注释部分,然后按d,就会删除注释符号。
3.代码块缩进,删除缩进。
缩进:选择需要缩进的代码行(键盘鼠标都可以,选中了就行),>(shift+.)
删除:选择需要缩进的代码行(键盘鼠标都可以,选中了就行),
下面是我一直使用的配置文件,有兴趣的朋友可以参考一下.vimrc
下面两个放在~/.vim/plugin/下
my_keymap.vim 键盘映射
my_taglist.vim taglist插件配置
将ctags复制到$vim\vim72目录中即可。
最后在/etc/vim/vimrc添加下列内容,设置好taglist插件:
“”””””””””””””””””””””””””””””””
” => plugin configuration
“”””””””””””””””””””””””””””””””
” taglist
let tlist_auto_highlight_tag = 1
let tlist_auto_open = 1
let tlist_auto_update = 1
let tlist_close_on_select = 0
let tlist_compact_format = 0
let tlist_display_prototype = 0
let tlist_display_tag_scope = 1
let tlist_enable_fold_column = 0
let tlist_exit_onlywindow = 0
let tlist_file_fold_auto_close = 0
let tlist_gainfocus_on_toggleopen = 1
let tlist_hightlight_tag_on_bufenter = 1
let tlist_inc_winwidth = 0
利用ctrl+ww来进行两个窗口之间的切换。
在taglist窗口中,可以使用下面的快捷键:
跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zr
= 将所有tag折叠起来,同zm
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
在vimrc中加下面设置可以按f6打开关闭taglist
函数和变量列表
map :tlisttoggle
用autocomplpop实现代码自动提示点击下面网址,进去下载autocomplpop插件
http://download.csdn.net/download/akmumu2010/4745413
下载的是一个zip文件,解压后会有三个文件夹,分别是autoload,doc,plugin。到vim的根目录下,找到名字
和这三个一样的文件夹。不同系统目录位置不同。我的fedora是/usr/share/vim/vimfiles
按照文件夹对应的把里面的acp.vim和其他的什么文件都copy过去。然后重启vim。这时候可能会有错误提示
error detected while processing /home/carlos/.vim/plugin/acp.vim:
line 13:
***** l9 library must be installed! *****
这是插件放出的一个错误提示,查看plugin里的acp.vim可以看到。是缺少l9 library库。这个也是需要下载的。地址在下面
http://download.csdn.net/download/akmumu2010/4745507
说明:哥也没有出现这个错误,不过以防万一,还是下载安装了
下载下来,它也是一个插件形式,以同样的方式copy到vim目录下。
安装完后就可以了。
再就是这个插件默认是没有设置php自动补全的,可以设置一个php函数字典,让其根据字典的内容进行自动
补全。
这个是一个php字典:.
编辑配置文件.vimrc,在文件后面加上下面的代码
au filetype php setlocal dict+=/etc/vim/php_funclist.txt
后面跟着的是字典的目录地址,根据自己的需求存放在一个地方就好。我是放到了/etc/vim/目录下。php_funclist下载:http://download.csdn.net/download/akmumu2010/4745537
再附加一些自动补全配置(加入到vimrc中):
php 中 一般是会在 $, ->, :: 后需要出现自动补全,在 .vimrc 中加入以下代码:
if !exists('g:autocomplpop_behavior') let g:autocomplpop_behavior = {} let g:autocomplpop_behavior['php'] = [] call add(g:autocomplpop_behavior['php'], { \ 'command' : \\, \ 'pattern' : printf('\(->\|::\|\$\)\k\{%d,}$', 0), \ 'repeat' : 0, \})endif
在 vim 中实现括号自动补全:
:inoremap ( ()i
:inoremap ) =closepair(')')
:inoremap { {}i
:inoremap } =closepair('}')
:inoremap [ []i
:inoremap ] =closepair(']')
:inoremap i
:inoremap > =closepair('>')
function closepair(char)
if getline('.')[col('.') - 1] == a:char
return \
else
return a:char
endif
endf
这样,写代码的时候不再担心会丢掉右边的括号了,尤其是函数嵌套的时候。
安装zencoding插件到http://download.csdn.net/download/akmumu2010/4745591下载压缩包,然后解压到vimfiles文件夹,和上面一样,将doc plugin
autoload三个文件夹放到相应文件夹下。然后在vim中输入helptags /etc/vim/doc 导入帮助文件.就ok了。
zencoing可以很方便的写html,一些常用命令:
输入 div>p#foo$*3>a 这样的缩写,然后按 ctrl + y + , 来展开(注意那个逗号),展开后它应该是这个样子的

多行缩写 输入如下:
test1test2test3
然后进入行选择模式,选中这三行按 ctrl + y + ,,接着它会提示你要使用的tag名称,tag: 输入 ‘ul>li* 会变成如下的样子

test1 test2 test3如果是输入blockquote,那么会变成这样
test1 test2 test3
输入ctrl + y + n 进入插入模式
输入ctrl + y + n 进入插入模式
假如有以下内容


切换注释 如有以下段
hello world

光标移动到此段落,输入ctrl + y + /变成

再次输入则还原
生成url连接 将光标移动到一个url上,如:
http://www.google.com/
输入ctrl + y + a 它会自动获取url页面的标题并生成一个连接

zen coding官方提供的速查手册(pdf):http://zen-coding.googlecode.com/files/zencodingcheatsheet.pdf
配置ok了,最后上张帅气的vim图:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product