搭建Vim为自定义的PHP开发工具的一些技巧

虽然 vim 本质上只是一个编辑器。但只要配合一些适当的插件, vim 也能变成一个全功能的 IDE 。笔者使用 vim 已经有挺长一段时间了,经过反复的试验,配置了一个高效的 PHP 开发环境,实为居家旅行、谋财害命、杀人越货必备之良品。

安装 vim
鉴于大多数读者都是使用Windows 环境,所以本文就以 Windows 作为运行环境。不过由于 vim 出色的跨平台特性,配置文件只需简单修改就可以在 Linux 版本的 vim 中使用。

目前 vim 的最新版本是 7.2 ,如果没有特别原因建议安装最新的版本。

下载地址: http://www.vim.org/download.php#pc
下载文件: ftp://ftp.vim.org/pub/vim/pc/gvim72.exe

安装时 不要装到带有空格、中文的目录中 ,其他保持默认即可。笔者的安装目录是 c:/apps/office/vim ,后文也以此为准。为了叙述方便,笔者用 $VIM 来表示 vim 的安装目录。例如您的 vim 安装在 d:/vim/ 中,那 $VIM 就代表 d:/vim/ 。

开始配置 vim
我们对 vim 的配置分为几个步骤。

修改 _vimrc 后自动生效

打开 $VIM 目录,可以看到其中有一个 _vimrc 文件,用 vim 打开此文件,删除所有内容后,在最后插入两行:

" autoload _vimrc
autocmd! bufwritepost _vimrc source %

上述命令让我们通过 vim 编辑 _vimrc 文件并保存时,可以自动载入 _vimrc 文件,使得我们对 vim 的定制可以立即生效(无需重启 vim )。

使 vim 中文化

在 _vimrc 顶部增加下列文本:

" disable VI's compatible mode..
set nocompatible

" set encoding=utf-8
set fileencodings=ucs-bom,utf-8,gbk,default,latin1

" use chinese help
set helplang=cn

上述代码的作用是禁用 vi 兼容模式(原始的 vi 功能太少了,没必要考虑兼容)、按照 utf-8 、 gbk 的顺序来检测文件编码,并设置帮助为中文。不过设置 set helplang=cn 并不能马上看到中文帮助,我们还得下载中文帮助文件。

下载地址: http://vimcdoc.sourceforge.net/
下载文件: vimcdoc-1.6.0.tar.gz

得到中文帮助文件压缩包后,将压缩包中 doc 子目录的所有文件复制到 $VIM/vimfiles/doc 目录中。此时再输入 :help 命令就可以看到中文帮助了。

中文帮助还是 7.1 版的,不过不影响我们使用。

设置字体

选择 vim 菜单的“编辑” -> “选择字体”,就可以为 vim 指定喜欢的显示字体了。笔者使用的是 Consolas 字体,大小设置为 9pt 。这个设置显示代码非常漂亮,不过中文就有点变形了。

设置好后,输入命令 :set guifont 可以查看到当前的字体设置,将该设置写入 _vimrc 文件。

"set gui options
if has("gui_running")
 set guifont=Consolas:h9
endif

上述代码中的 if … endif 是一个条件判断结构。指示只有当我们使用图形界面版的 vim 时才设置字体。

为编辑 PHP 代码进行基本设置

现在用 vim 打开 .php 文件看上去是很难看的,别说代码高亮,连行号都没有显示。所以还要给 _vimrc 添加以下内容:

" Enable syntax highlight
syntax enable

" Show line number
set nu

" show matching bracets
set showmatch

" Basic editing options
set expandtab
set shiftwidth=2

au FileType html,python,vim,javascript setl shiftwidth=2
au FileType html,python,vim,javascript setl tabstop=2
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4

set smarttab
set lbr
set tw=0

"Auto indent
set ai

" Smart indet
set si

" C-style indeting
set cindent

" Wrap lines
set wrap

上述设置启用了格式化高亮、行号显示,以及括号匹配、自动缩进等编辑功能,对于大多数情况都可以获得理想的编辑体验。不过此时对 .php 文件的支持还不完善,需要下载专门的 php 插件。

下载地址: http://www.vim.org/scripts/script.php?script_id=1571
下载文件: php.tar.gz

将其中的 php.vim 复制到 $VIM/vimfiles/syntax 目录中即可。

设置喜欢的配色方案

默认的配色方案相信没几个人会喜欢,可以通过下面的网址查看配色方案并下载(有几百个哦)。

下载网址: http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index-c.html

这个网址列出了 300 多个配色方案以及实际的显示效果,点击方案名称即可下载到一个 .vim 文件。将该文件放入 $VIM/vimfiles/colors 目录,然后在 _vimrc 中添加:

" set color schema
colorscheme oceandeep

这两行代码需要加到 if has("gui_running") … endif 代码块中,例如:

if has("gui_running")
 set guifont=Consolas:h9
 " set color schema
 colorscheme oceandeep
endif

设置后显示效果就漂亮多了 :-) ­

更多有用的编辑设置

虽然不是专门针对编辑 .php 文件的设置,但这些选项可以让 vim 更好用,所以建议加上:

" Sets how many lines of history VIM har to remember
set history=400

" Set to auto read when a file is changed from the outside
set autoread

" Have the mouse enabled all the time:
set mouse=a

" Do not redraw, when running macros.. lazyredraw
set lz

" set 7 lines to the curors - when moving vertical..
set so=7

" The commandbar is 2 high
set cmdheight=2

" Change buffer - without saving
set hid

" Ignore case when searching
" set ignorecase
set incsearch

" Set magic on
set magic

" No sound on errors.
set noerrorbells
set novisualbell
set t_vb=

" How many tenths of a second to blink
set mat=4

" Highlight search things
set hlsearch

" Turn backup off
set nobackup
set nowb
set noswapfile

" smart backspace
set backspace=start,indent,eol

" switch buffers with Tab
map <C-Tab> :bn<CR>
map <S-Tab> :bp<CR>

经过一番改造,我们的 vim 已经可以很顺手地编辑 .php 文件了。不过要打造 php 开发环境还有很多工作要做呢。

打造 PHP IDE

IDE 左侧是目录导航,中间是编辑区域,而右侧则是方法列表,用于在已经打开的文件中快速跳转。在编辑区域按下 CTRL+X 键,还会显示已打开文件的列表。

其他诸如自动补全、代码模板等功能,都应有尽有。看过了漂亮的截图,我们就来一步步打造 PHP IDE 吧。

用 NERDTree 实现目录导航

在进行 PHP 应用开发时,同时编辑多个文件是很正常的事情。所以必须有一个方便的目录导航工具,以便在目录结构间快速切换,找到需要编辑的文件。

vim 中提供该类功能的插件很多,比较知名的有 project 、 winmanager 等。但笔者个人认为最好用的还是 The NERD Tree 这个插件。 NERDTree 不但可以显示完整的目录树结构,还可以将任何一个目录设置为根目录。并且提供了目录导航的书签功能,可谓非常方便。

下载地址: http://www.vim.org/scripts/script.php?script_id=1658
下载文件: 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 <F10> :NERDTreeToggle<CR>

重启 vim 后,按下 F10 键,就可以在左侧看到一个目录树了。在目录树窗口中按下 ? 键可以查看详细的帮助信息。

最常用的操作键有:

此外在目录树窗口中输入目录 :Bookmark 收藏名 还可以将光标所在目录添加到收藏夹中。下次使用 :BookmarkToRoot 收藏名 可以直接转到该目录,并且以该目录作为根目录。更多命令可以参考 NERDTree 的帮助文档。

用 taglist 实现代码导航

解决了目录和文件导航问题,我们还要为代码之间的跳转提供辅助手段, taglist 就是这样一个插件。 taglist 可以列出已打开文件中定义的类、函数、常量,甚至变量。

下载地址: http://www.vim.org/scripts/script.php?script_id=273
下载文件: taglist_45.zip

压缩包需要完整解压缩到 $VIM/vimfiles 目录,并且用 :helptags $VIM/vimfiles/doc 命令索引 taglist 插件的帮助文档。 taglist 插件需要依赖 ctags 程序才能工作。目前常用的 ctags 版本是 Exuberant Ctags 。

下载地址: http://ctags.sourceforge.net/
下载文件: ec57w32.zip

只需要把压缩包中的 ctags.exe 复制到 $VIM/vim72 目录中即可。 ctags.exe 应该和 gvim.exe 在一个目录。

最后在 _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
let Tlist_Max_Submenu_Items = 1
let Tlist_Max_Tag_Length = 30
let Tlist_Process_File_Always = 0
let Tlist_Show_Menu = 0
let Tlist_Show_One_File = 0
let Tlist_Sort_Type = "order"
let Tlist_Use_Horiz_Window = 0
let Tlist_Use_Right_Window = 1
let Tlist_WinWidth = 40
let tlist_php_settings = 'php;c:class;i:interfaces;d:constant;f:function'

在vim中检查php语法格式
打开你的_vimrc,将如下配置写入并保存。

“检查当前文件代码语法(php){{{

function! CheckSyntax()
 if &filetype!=”php”
 echohl WarningMsg | echo “Fail to check syntax! Please select the right file!” | echohl None
 return
 endif
 if &filetype==”php”
 ” Check php syntax
 setlocal makeprg=\”php\”\ -l\ -n\ -d\ html_errors=off
 ” Set shellpipe
 setlocal shellpipe=>
 ” Use error format for parsing PHP error output
 setlocal errorformat=%m\ in\ %f\ on\ line\ %l
 endif
 execute “silent make %”
 set makeprg=make
 execute “normal :”
 execute “copen”
endfunction
map <F6> :call CheckSyntax()<CR>
“}}}

然后我们按下F6就可以执行啦~~ 注意

if &filetype!=“php”
 echohl WarningMsg | echo “Fail to check syntax! Please select the right file!” | echohl None
 return
endif

这一段,是规定了必须是.php格式的文件,所以不要拿成错文件来试哦

OK,我们来测试一下,新建一个php文件phpinfo.php,写入如下代码

<?php phpinfo()>>?>

当然,很明显语法是错误的,按下F6,结果如下:

修改为

<?php phpinfo()?>

并保存后,按下F6,结果如下:

(0)

相关推荐

  • 2017年最好用的9个php开发工具推荐(超好用)

    对于PHP开发者,在互联网上有很多可用的开发工具,但对于初学者不知道哪个php开发工具比较好,找到一个合适的PHP开发工具是很难的,需要花费很多的时间精力.所以,今天我们小编就为初学者推荐几个2017年最好用的9个php开发工具. (php程序员工具箱 v0.1版本,点此下载:http://www.jb51.net/softs/554128.html) 一.PHP开发工具排行 1.SublimeText3 工具简介: Sublime Text是一款流行的代码编辑器.Sublime Text 具有

  • PHP开发工具ZendStudio下Xdebug工具使用说明详解

    从学习PHP基础知识到使用ZendSudio工具开发有半年多了,这过程中,学习断断续续,遇到的问题也是N多,学习PHP还真是不让人省心.最不省心的还是算调试过程. 学习编程,一定要懂得调试,否则就如同盲人摸象,理不清这里面的运行机制.也许是因为自己非科班出来,或是领悟力不足,又或本身xdebug工具本身设置较为复杂,导致我对Zendstudio的调试过程充满了步步惊心. 我使用的是XAMPP的集成开发平台环境.里面已经预设了Xdebug的调试工具,只需要自己改下配置的就可以了. 我的开发模式是,

  • 再推荐十款免费的php开发工具

    下面介绍10个免费.强大的PHP编辑器/开发工具.这些编辑器拥有调试器.增量执行PHP脚本.查看每一行的所有变量值等功能. 1) Notepad ++ Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用.支持的语言: C, C++, Java , C#, XML, HTML, PHP, Javascript!  功能有: 1. Notepad内置支持多达 27 种语法高亮度显示(囊括各种常见的源代码.脚本,值得一提的是,完美支持.nfo 文件查看),也支持自定义语言: 2. N

  • PHP 开发工具

    一 设计工具 UML 和相关设计工具  - Argo UML  UML绘图工具,支持PHP stub生成. (commercial spin off is Posideon) –Java编写.  - Umbrello UML  UML绘图工具,支持PHP stub生成. 需要Unix / KDE.  - Dia  支持UML 的绘图工具 -使用AutoDia 生成PHP.  - XMI 2 PHP  从XMI文档生成PHP代码,用XML描述UML的一种形式. 二 编码工具 推荐的 IDE / 编

  • php开发工具有哪五款

    由于最近小编要自学php,所以整理了一些常用的php开发工具,给大家分享一下: 1.EditPlus     EditPlus是一套功能强大,可取代记事本的文字编辑器,拥有无限制的Undo/Redo.英文拼字检查.自动换行.列数标记.搜寻取代.同时编辑多文件.全屏幕浏览功能.对于很多php程序来说,EditPlus 非常简单好用.同时EditPlus也是一款好用的HTML编辑器,除了可以颜色标记HTML Tag (同时支持C/C++.Perl.Java)外,还内建完整的HTML和CSS1指令功能

  • php开发工具之vs2005图解

    为什么会想到用vs2005呢? 一是有感于vs开发.net应用程序,或者asp.net时候的强大.....一直很怀念 二是 vs是个很全面的编辑器,甚至图片都可以直接打开编辑,对于类似我这样工作杂,语言用的也杂的人很方便.(vs虽然也能开发java程序,但就远远不及eclipse了). 另外zend studio和 eclipse,java开发的,界面上都没有vs来的清爽.用起来也感觉没vs反应快. 先看下我的界面: 1.代码编辑窗口.配色方案,我很喜欢eclipse的默认配色.所以参照ecli

  • PHP+MYSQL开发工具及资源收藏

    PHP编辑工具DzSoftPHPEditor    专为 PHP 所设计的网页程序编辑软件,具有 PHP 编辑.侦错.浏览.原始码检视.档案浏览.可自订的原始码样本等功能,无须架设网站主机就可以测试 PHP 下载地址:http://down.chinaz.com/s/8174.asp EngInSitePHPEditor 一款允许创建.编辑.运行和调试 PHP4 或 PHP5 脚本的软件下载地址:http://down.chinaz.com/s/15075.asp PHPExpertEditor

  • 搭建Vim为自定义的PHP开发工具的一些技巧

    虽然 vim 本质上只是一个编辑器.但只要配合一些适当的插件, vim 也能变成一个全功能的 IDE .笔者使用 vim 已经有挺长一段时间了,经过反复的试验,配置了一个高效的 PHP 开发环境,实为居家旅行.谋财害命.杀人越货必备之良品. 安装 vim 鉴于大多数读者都是使用Windows 环境,所以本文就以 Windows 作为运行环境.不过由于 vim 出色的跨平台特性,配置文件只需简单修改就可以在 Linux 版本的 vim 中使用. 目前 vim 的最新版本是 7.2 ,如果没有特别原

  • Java开发工具Eclipse使用技巧全局搜索和更替

    本文研究的主要是Eclipse中全局搜索和更替,下面看看具体操作方法. Eclipse全局搜索步骤 使用快捷键"ctrl+H"打开文件搜索对话框,选择"File Search"标签,在Containing text中输入你需要搜索的字符串,在Scope中,选择你要搜索的范围,点击Search. 在Search视图中,会列出搜索得到的结果,点击打开属性结构.双击搜索结构,就会显示源代码中的搜索结果. Eclipse全局替换步骤 在全局搜索到目标字符串后,在Search

  • 如何在python开发工具PyCharm中搭建QtPy环境(教程详解)

    在Python的开发工具PyCharm中安装QtPy5(版本5):打开"File"--"Settings"--"Project Interpreter",点击窗口中右侧点添加按钮,然后在弹出的窗口添加PyQt5模块包,单击Install Package按钮,如图所示: 安装好安装PyQt5后,需要用同样的方法安装pyqt5-tools,安装PyQt5后没有designer.exe就是因为没有安装pyqt5-tools.安装好PyQt5后,desi

  • 前端开发工具nvim来代替VSCode安装配置

    目录 1. Neovim是什么 2. 我们为什么需要Neovim 3. 如何配置Neovim 3.1 安装第三方终端 3.2 安装neoviem 3.3 快速启动neovim 3.4 创建neovim配置文件 3.5 配置字体 4. 终端模拟器之选 4.1 iterm2 4.2 alacrittty 4.3 kitty 4.4 Neovide 1. Neovim是什么 在此之前,我一直都是使用VSCODE或者WEB STORM编辑器的. 他们确实好用方便. 直到我得了腱鞘炎之后. 不得不寻求减少

  • [JAVA]十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择.在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥"器",希望能对大家有所帮助. 1.JDK (Java Development Kit) 2.Java Workshop 3.NetBeans 与Sun Java Studio 5 4.Borlan

  • 人人都是开发者:7款傻瓜式APP开发工具

    谷歌推出的App Inventor Android App开发工具可以让你仅通过拖拉式的简单操作就可以创建自己的Android App.对于那些为了特定目的想要动手尝试开发一个简单应用的用户,除了App Inventor其实还有很多其他的选择,比如下面介绍的5款工具就可以让所有人都能轻松开发手机应用.不过如果你真想做个专业的开发者,还是像lion一样踏踏实实从基础学起比较好. 国外的营销工作者和技术开发者开发了许多能帮助企业创建简单APP应用的工具,通过这些工具,就算是一个对程序一窍不通的普通网

  • JavaScript 开发工具webstrom使用指南

    看到网上一篇介绍webstrom的文章,觉得功能确实强大,也知道为什么阿里巴巴的前端传到github上的文件为啥都有一个 .idea 文件,(传说淘宝内部推荐写js用webstrom) 我们可以理解 IDE 就是集成了很多你想要的功能,或者你不想要的功能.换句话说就是装了很多插件的 editor ,所以到目前为止,我还觉得没必要给它装什么插件. 那么接下来开始介绍webstrom的特色功能: WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具 任何一个编辑

  • Web前端开发工具——bower依赖包管理工具

    Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系. 包管理工具一般有以下的功能: a)注册机制:每个包需要确定一个唯一的 ID 使得搜索和下载的时候能够正确匹配,所以包管理工具需要维护注册信息,可以依赖其他平台. b)文件存储:确定文件存放的位置,下载的时候可以找到,当然这个地址在网络上是可访问的. c)上传下载:这是工具的主要功能,能提高包使用的便利性.比如想用 jqu

  • 分享9个最好用的JavaScript开发工具和代码编辑器

    Web设计和开发是现今越来越流行的职业方向之一.工欲善其事,必先利其器,如果你想在这个领域出类拔萃,那么你就必须具备一些优秀的技能,例如能操作不同的平台.IDE和其他各种各样的工具. 谈到平台和IDE,现在已经不是以前那个掌握一个IDE就能"一招鲜吃遍天"的时代了.激烈的竞争以及蔓延到现在的集成开发环境.基于IDE是用于创建和部署应用程序的强大客户端应用程序,下面我们要分享的就是对于很多网页设计师和开发人员而言,最好的JavaScript 开发工具. 若有不同见解,敬请不吝赐教. 1)

随机推荐