设为首页 收藏本站
查看: 958|回复: 0

[经验分享] vim配置php开发环境

[复制链接]

尚未签到

发表于 2015-8-26 13:52:53 | 显示全部楼层 |阅读模式
  一:配置目录树
  
  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('.')[col-1] !~ '\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('.')[col('.') - 1] == 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104522-1-1.html 上篇帖子: PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述 下篇帖子: PHP常用技巧总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表