FeiYan

网站导航

搜索

腾讯微博 新浪微博 FeelBLog 开源中国社区

Vim开发PHP基础配置

2012-10-23 11:52:44     9个评论     14821次访问

世界上只有三种程序员,一种是使用Vim,一种是使用Emacs,第三种是使用其他编辑器和IDE的。

由此可见Vim在程序猿界的地位之高,这话虽然说的有点过了,但是不得不说Vim用习惯以后确实非常方便,我从去年受某大师的影响开始使用Vim,并且逐渐成为开发PHP的主要编辑器(Linux下我偶尔会使用Komode Edit,Windows下我使用EditPlus和ZendStudio),在项目比较繁忙的时候,使用Linux+Vim写PHP简直是一种享受。下面是我的Vim配置和安装的插件。

1. ctags

下载地址:http://www.vim.org/scripts/script.php?script_id=610

ctags我用于代码间的跳转,例如返回函数定义处(ZendStudio中按着Ctrl+鼠标左键的功能),Debian/Ubuntu用户也可以通过apt方式安装。

##安装
sudo apt-get install ctags
 
##使用
ctags -R *

然后在代码中使用“Ctr+[”就可以前往函数定义处(注意一个项目中有同名的方法可能会跳转不准确),使用“Ctrl+T”就可以返回上一个页面。

2. NERDTree

下载地址:http://www.vim.org/scripts/script.php?script_id=1658

NERDTree我现在已经不使用了,不过对于刚接触Vim的人来说NERDTree是一个很好的过渡的插件,很类似大型IDE的项目文件列表功能。

3. PHP函数自动补全

funclist.txt

Vim本身就可以自动补全,按Ctrl+P即可,不过默认只会查找当前标签页中所有打开的文件查找存在的函数、变量和方法等。如果需要使用PHP函数自动补全,则需要单独配置。首先下载上面的函数列表,然后再vimrc加入配置,注意修改funclist.txt的位置路径。

下面是我的Vimrc所有的自定义配置,其中下面的是PHP函数自动补全的设置。

"ctags
set tags=tags;/
 
set guifont=Monaco:h10       " 字体 && 字号
set expandtab                " 设置tab键换空格
set tabstop=4                " 设置tab键的宽度
set shiftwidth=4             " 换行时行间交错使用4个空格
set autoindent               " 自动对齐
set backspace=2              " 设置退格键可用
set cindent shiftwidth=4     " 自动缩进4空格
set smartindent              " 智能自动缩进
set ai!                      " 设置自动缩进
set nu!                      " 显示行号
"set showmatch               " 显示括号配对情况
set mouse=a                  " 启用鼠标
set ruler                    " 右下角显示光标位置的状态行
set incsearch                " 查找book时,当输入/b时会自动找到
set hlsearch                 " 开启高亮显示结果
set incsearch                " 开启实时搜索功能
set nowrapscan               " 搜索到文件两端时不重新搜索
set nocompatible             " 关闭兼容模式
set vb t_vb=                 " 关闭提示音
"set cursorline              " 突出显示当前行
set hidden                   " 允许在有未保存的修改时切换缓冲区
 
 
syntax enable                " 打开语法高亮
syntax on                    " 开启文件类型侦测
filetype indent on           " 针对不同的文件类型采用不同的缩进格式
filetype plugin on           " 针对不同的文件类型加载对应的插件
filetype plugin indent on    " 启用自动补全
 
set writebackup              " 设置无备份文件
set nobackup
set autochdir                " 设定文件浏览器目录为当前目录
"set nowrap                  " 设置不自动换行
set foldmethod=syntax        " 选择代码折叠类型
set foldlevel=100            " 禁止自动折叠
 
set laststatus=2             " 开启状态栏信息
set cmdheight=2              " 命令行的高度,默认为1,这里设为2
 
" 每行超过80个的字符用下划线标示
au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.erb,*.hs,*.vim 2match Underlined /.\%81v/
 
 
" 设置编码
set fenc=utf-8
set encoding=utf-8
set fileencodings=utf-8,gbk,cp936,latin-1
" 解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
" 解决consle输出乱码
language messages zh_CN.utf-8
 
 
" For Haskell
:let hs_highlight_delimiters=1            " 高亮定界符
:let hs_highlight_boolean=1               " 把True和False识别为关键字
:let hs_highlight_types=1                 " 把基本类型的名字识别为关键字
:let hs_highlight_more_types=1            " 把更多常用类型识别为关键字
:let hs_highlight_debug=1                 " 高亮调试函数的名字
:let hs_allow_hash_operator=1             " 阻止把#高亮为错误
 
"只有在是PHP文件时,才启用PHP补全
au FileType php call AddPHPFuncList()
function AddPHPFuncList()
    set dictionary-=/home/feiyan/tools/vim/funclist.txt dictionary+=/home/feiyan/tools/vim/funclist.txt
    set complete-=k complete+=k
endfunction

文章标签: vim  php  ctags 

本文地址:Vim开发PHP基础配置

相关文章

2009-08-20:常用PHP类建站程序和源码

2009-11-06:PHP中出现Notice: Undefined index的三种解决办法

2011-01-09:PHP转换IP地址到真实地址

2011-11-03:PHP转换汉字拼音和Unicode

2011-11-29:EditPlus 3.x 配置PHP开发环境

2012-08-17:用PHP开发一个自己的博客

2012-09-03:高性能网站架构基础篇

2012-09-17:常用PHP正则表达式

2012-09-17:Ubuntu编译Yaf

2012-09-19:使用Pecl或Pear安装PHP扩展

9 Comments »

  1. 飞晏飞晏
    有用但是用处不大,我安装了但是很少用

    @Anshao微博客: 我至今还不知道nerdtree要怎么用好..

    2012-12-15 16:35:50   

  2. Anshao微博客Anshao微博客
    我至今还不知道nerdtree要怎么用好..

    2012-12-14 22:39:53   

  3. t.k.t.k.
    嗯,不管怎样,感谢你的分享。

    @飞晏: 这个是Vim的配置语法,含义我不清楚,应该只是设置文件路径的。网上查到照搬的,呵呵。// @t.k.: 谢谢, au FileType php call AddPHPFuncList() 是不是FileType是php的时候,就调用AddPHPFuncList()呢? 但后面的+= 和-= 又是什么意思呢?

    2012-10-24 22:36:31   

  4. 飞晏飞晏
    这个是Vim的配置语法,含义我不清楚,应该只是设置文件路径的。网上查到照搬的,呵呵。

    @t.k.: 谢谢, au FileType php call AddPHPFuncList() 是不是FileType是php的时候,就调用AddPHPFuncList()呢? 但后面的+= 和-= 又是什么意思呢?

    2012-10-24 17:22:33   

  5. t.k.t.k.
    谢谢, au FileType php call AddPHPFuncList() 是不是FileType是php的时候,就调用AddPHPFuncList()呢? 但后面的+= 和-= 又是什么意思呢?

    2012-10-24 16:25:21   

  6. 飞晏飞晏
    第一次留言有审核的,在数据库中有过留言记录就可以直接显示了。

    @t.k.: 我刚刚的留言不知道跑那里去了……

    2012-10-24 13:00:18   

  7. 飞晏飞晏
    66-71是指当文件类型为PHP的时候可以使用下面的那个函数,你当然可以改为其他语言的。

    @t.k.: 能否解释一下为什么使用VIM是一种享受,而这种享受从IDE上得不到? 此外,能否解释一下博主的.vimrc的66到71行?如果我要增加其他语言的funclist呢? 不胜感激。

    2012-10-24 12:59:33   

  8. t.k.t.k.
    我刚刚的留言不知道跑那里去了……

    2012-10-24 12:19:22   

  9. t.k.t.k.
    能否解释一下为什么使用VIM是一种享受,而这种享受从IDE上得不到? 此外,能否解释一下博主的.vimrc的66到71行?如果我要增加其他语言的funclist呢? 不胜感激。

    2012-10-24 12:18:19   

发布评论

最新评论

  1. SpecsSpecs

    不错~~

  2. zhyzhy

    我也遇到这个问题 不知道是swf 、jcrop 、 uploadify 还是浏览器缓存

  3. java开发java开发

    您好!我按你的源码进行了编,能正常运行,但是我们项目是由java开发的,怎么做才能将生成的一个可执行文件?我想把这个文件放到服务器上直接运行,不想安装~