安装MACVIM
MACVIM下载地址:https://github.com/b4winckler/macvim/downloads
解压缩下载到的文件,然后将MacVim.app复制到Applications文件夹下,右键点击该app文件,点选show package contents可以看到app里面的详细文件信息,包括macvim以及vim的源文件,后面我们可以在该目录下修改macvim的配置信息以及安装插件。
打开/etc/bashrc文件,将以下代码添加到文件中
alias macvim='/Applications/macvim.app/Contents/MacOS/MacVim'
以后可以在terminal中直接启动macvim
配置MACVIM
MAC OS下的vim配置文件在~/.gvimrc,如果该文件不存在,可以手动创建一个。然后是编辑该.gvimrc文件,文件内容请参考http://blog.csdn.net/luochuan/article/details/7252916,由于个人也是从网上找的一个配置,所以具体的参数信息不做说明,不过据说是vim的完美配置,由于mac的需要以及个人的喜好,修改了其中的部分参数,主要是ui界面和文件编码等。
php代码颜色配置(laphp.vim)请参考:http://blog.csdn.net/luochuan/article/details/7250163
安装目录和文件导航插件NERDTREE
NERDTREE是vim的一个功能非常强大的目录导航插件,下载地址:http://www.vim.org/scripts/script.php?script_id=1658
下载之后解压,找到NERD_tree.txt和NERD_tree.vim文件,然后将这两个文件分别复制到/Applications/MacVim.app/Contents/Resources/vim/runtime/doc 和 /Applications/MacVim.app/Contents/Resources/vim/runtime/plugin 目录下。
我们可以在macvim的命令模式下输入:NERDTreeToggle来打开或关闭NERDTree
注意:使用过程中,你可能会因为删除一个文件夹,而没有删除这个文件夹所绑定的标签,出现以下错误
NERDTree: 1 invalid bookmarks w...
解决:打开macvim.app的相应目录,进入到.NERDTreeBookmarks目录,删除里面无用的标签即可。
安装ctags
ctags + taglist可以列出已打开文件中定义的类、函数、常量,甚至变量。
下载地址:http://ctags.sourceforge.net/
解压进入ctags目录
打上PHP补丁(否则按下ctrl+n,连基本的function include等函数都出不来):
wget http://svn.bitflux.ch/repos/public/misc/ctags-php5.patch
编译安装:
./configure
make
sudo make install
然后会生成安装之后的文件目录/usr/local/bin/ctags打开.gvimrc,将以下代码添加到文件最后
let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
下载地址:http://www.vim.org/scripts/script.php?script_id=273
解压之后将doc/taglist.txt和plugin/taglist.vim分别复制到/Applications/MacVim.app/Contents/Resources/vim/runtime/doc 和 /Applications/MacVim.app/Contents/Resources/vim/runtime/plugin 目录下。
此时Ctags和Taglist已经结合起来,再用macvim编辑php文件, 执行 :TlistToggle 就会在右边出现一个当前文件的类 函数 变量 等东西。
将taglist显示在macvim右边,需要在.gvimrc里添加设置代码:
let Tlist_Use_Right_Window=1
ctags方法定位
ctags有一个强大的功能就是可以快速的定位到函数的位置,我们可以用它方便的跟踪代码。
以我自己的一个项目laugh为例,terminal切换到项目目录
ctags -R *
打开macvim
:cd laugh目录
:set tags=tags
这样,我们就设置好了laugh的tags标签选项,接下来我们查找一个方法getUser
方法一:
:tag getUser
如果getUser方法的定义只存在一个文件中你会看到VIM打开了该文件,并把光标定位到getUser方法所在行上。
如果getUser方法的定义存在多个文件中,会提示:
找到 tag:1 / 3 或更多
这时我们可以列出保护这个方法的所有文件
:tselect "显示列表
这时会列出所有文件,让我们选择一个文件打开
# pri kind tag 文件
> 1 F C f getUser function/my_function.php
2 F f getUser xxx/xxx.php
键入数字和回车(empty cacels) :
根据提示输入我们想查看的文件对应的序号然后回车就可以了。
:tn "显示后一个tag到的PHP文件
:tp "显示前一个tag到的PHP文件
:tags "显示标签栈
我们还可以把鼠标停留在想要跳转的 类 函数 变量 上面,然后按 command + ] ,回到原来位置是 command + t
方法二:
把鼠标停留在 getUser 上面,然后按command+],也可以直接跳转到该方法位置,之后我们可以按command+o 返回。
关于同屏分割文件编辑,命令行模式输入
:split another-file "上下分割
:vsplit another-file "左右分割
配置PHP函数自动补全
首先,先在~/.vim/下面新建一个文件夹dict,并创建php_function_list.txt文件:
mkdir ~/.vim/dict
touch ~/.vim/dict/php_function_list.txt
然后打开php函数列表的链接:
http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt?view=co
复制上面的函数列表到~/.vim/dict/php_function_list.txt里去。
最后编辑~/.gvimrc文件,在最后加入一行代码:
au FileType php setlocal dict+=~/.vim/dict/php_function_list.txt
然后在编辑php文件时可以用ctrl+x, ctrl+o自动补全
.gvimrc配置文件:http://blog.csdn.net/luochuan/article/details/7252916
colorscheme-laphp.vim插件:http://blog.csdn.net/luochuan/article/details/7250163