hongleimi 发表于 2015-8-26 13:52:53

vim配置php开发环境

  一:配置目录树
  
  1.安装vim
  apt-get install vim
  
  vim /root/.vimrc
  
  :set hlsearch
  syntax on
  set tabstop=4
  set softtabstop=4
  set shiftwidth=4
  set autoindent
  set cindent
  set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
  set nu
  if &term=="xterm"
  set t_Co=8
  set t_Sb=^[[4%dm
  set t_Sf=^[[3%dm
  endif
  let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
  set tags="/root/.vim/tags"
  
  
  2.安装导航目录树插件NERDTree
  下载地址:http://www.vim.org/scripts/script.php?script_id=1658
  mkdir /root/.vim
  解压缩时,要把压缩包中的目录结构完整的解压缩到 /root/.vim/ 目录中。
  完成后,应该分别找到 /root/.vim/doc/NERD_tree.txt 文件和 /root/.vim/plugin/NERD_tree.vim 文件
  然后在vim中输入命令: helptags ~/.vim/doc,将NERDTree的帮助文档添加到vim中。
  现在,命令模式下输入:NERDTreeToggle便可打开或关闭NERDTree
  
  3.安装taglist插件
  http://www.vim.org/scripts/script.php?script_id=273
  下载文件:taglist_45.zip
  步骤同2,解压后,把对应目录的文件放到相应位置
  
  4.安装ctag
  下载地址:http://ctags.sourceforge.net/
  下载文件:ctags-5.8.tar.gz
  解压:tar zxvf 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
  
  把ctags关联到taglist
      vi ~/.vim/plugin/taglist.vim
    在命令行模式下输入命令查找 ":/loaded_taglist"
    找到后,在该行前面加上如下行:
  let Tlist_Ctags_Cmd="/usr/bin/ctags" "目录可能有变,或许是/usr/local/bin/ctags
  
  5重启vim ,运行:TlistToggle                         可以看到php的函数列表
  
  6:NERDTreeToggle 可以看到目录树列表
  
  7.自定义快捷键:
  
  vim /root/.vimrc   添加:
  
  map <F2> :NERDTreeToggle<CR>
  map <F3> :TlistToggle<CR>
  map <F4> t :NERDTreeMirror<CR>
  
  三:安装snipMate插件
  很爽的插件, 各种自动补全!用了后,保证你喜欢
  下载地址:http://www.vim.org/scripts/script.php?script_id=2540 下载最新的
  解压到.vim下,编辑.vimrc,在最下面添加如下设置
  :filetype plugin on
  OK!搞定,这时候你输入if,for,foreach,swich后,直接按TAB,全部自动补全!
  四:php函数自动补全

php_funclist下载:php_funclist.tar.gz

  下载上面的php_funclist.txt文件,放到.vim文件夹下
  并在 ~/.vimrc下添加如下命令
  set dictionary-=~/.vim/php_funclist.txt dictionary+=~/.vim/php_funclist.txt
"Use the dictionary completion
set complete-=k complete+=k


  function! InsertTabWrapper()
      let col=col('.')-1
      if !col || getline('.') !~ '\k'
          return "\<TAB>"
      else
          return "\<C-N>"
      endif
endfunction
  "Remap the tab key to select action with InsertTabWrapper
inoremap <TAB> <C-R>=InsertTabWrapper()<CR>
  再附加一些自动补全配置(加入到vimrc中):
  php 中 一般是会在 "$", "->", "::" 后需要出现自动补全,在 .vimrc 中加入以下代码:

if !exists('g:AutoComplPop_Behavior')
let g:AutoComplPop_Behavior = {}
let g:AutoComplPop_Behavior['php'] = []
call add(g:AutoComplPop_Behavior['php'], {
\   'command'   : "\<C-x>\<C-o>",
\   'pattern'   : printf('\(->\|::\|\$\)\k\{%d,}$', 0),
\   'repeat'    : 0,
\})
endif
  在 Vim 中实现括号自动补全:
  :inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>
function ClosePair(char)
if getline('.') == a:char
return "\<Right>"
else
return a:char
endif
endf
  这样,写代码的时候不再担心会丢掉右边的括号了,尤其是函数嵌套的时候。
  五:vim查看php手册

  下载http://blog.planetxml.de/uploads/vim-php-manual.tgz
  解压到$HOME/.vim/vim-php-manual/doc(一定要有这个doc)
doc 目录里面是一堆 txt文件 还有一个没有后缀名的 tags 文件
用vim打开 tags然后输入 :%sort 命令回车 然后 :w 保存 再 :q 退出
修改 vim 配置文件
加上
set runtimepath+=$HOME/.vim/vim-php-manual
autocmd BufNewFile,Bufread *.module,*.inc,*.php set keywordprg="help"
当光标处于php自带函数上时 按大写K 会显示具体的函数描述非常好用   
  至于说, 为什么要把phpmanual目录添加到runtimepath, 是因为:


[*]When no argument is given to :help the file given with the 'helpfile' option
[*]will be opened. Otherwise the specified tag is searched for in all "doc/tags"
[*]files in the directories specified in the 'runtimepath' option.
  意思就是说, 在vim中, 调用help的时候, help会去所有的runtimpath下的doc目录中寻找tags文件, 来寻找要查找的帮助关键字.
  
  六:项目文件中生成tag文件,让vim在文件中"跳来跳去"
  假如你的项目文件在/var/www/trunkcard下, 简历如下脚本文件create_tags.sh
  #!/bin/bash
cd /var/www/trunkcard
/usr/bin/ctags-exuberant -f ~/.vim/mytags/framework \
         -h \".php\" -R \
         --exclude=\"\.svn\" \
         --totals=yes \
         --tag-relative=yes \
         --PHP-kinds=+cf \
         --regex-PHP='/abstract class ([^ ]*)/\1/c/' \
         --regex-PHP='/interface ([^ ]*)/\1/c/' \
         --regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/'
  执行该脚本
  ./create_tags.sh
  打开你的vim配置文件($HOME/.vimrc),加上如下配置
  set tags=~/.vim/mytags/framework(此处不需要添加引号,即不应该“~/.vim/mytags/framework”,应该~/.vim/mytags/framework)OK完毕!
  现在随意打开你的项目中的php文件,找到类,或者方法的地方,按ctrl + ] 直接跳到声明的地方,按ctrl + t 返回!
  
  vim中文帮助文档:
  
  下载vimcdoc-1.5.0.tar.gz
  下载地址: http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.5.0.tar.gz
  解压
  tar -zxvf vimcdoc-1.5.0.tar.gz
  进入解包后的文件夹
  cd vimcdoc-1.5.0
  安装
  sudo ./vimcdoc.sh -i
  测试打开vim
  输入:help如果成功就应该看到中文帮助文档
  
  vim中不同窗口的切换快捷键是ctrl + w + w
页: [1]
查看完整版本: vim配置php开发环境