全部博文(263)
分类: LINUX
2011-04-21 14:26:45
We need to have vim installed of course.
$ sudo aptitude install vim
Vim doesn’t seem to create the user folder automatically. So we need to create these our self. We’ll start off with a folder for plugins, color schemes and syntax settings.
$ mkdir ~/.vim
$ mkdir ~/.vim/{syntax,colors,plugin}
Most of the time i will be editing .php files. So i want some good syntax support for that. Vim has a nice plugin system. And there does seem to be a syntax file for PHP . It’s a bit outdated. But will do for now. The only thing to do to enable it is copy it to the plugin directory.
$ mv php.vim ~/.vim/syntax
Now we have a very powerful but basic PHP editor. That’s nice and all. I would like to at least have some sort of a project manager. And there is a plugin for that as well. & copy!
$ mv project.vim ~/.vim/plugin
Ok that’s pretty cool. But it still looks like crap. Time for some theme sugar. It actually took me quite some time to find a theme i like. Guess i am picky. The theme / colour scheme i settled for is called wombat. The file didn’t do much for me. But i found a 256 colour version.
$ mv wombat256mod.vim ~/.vim/colors
That’s starting to look like a pretty nice setup. Time to make some settings permanent and to enable some other features.
$ vim ~/.vimrc
And add some settings
set rule
set wrapscan
set number
set backspace=start,indent,eolset t_Co=256
colorscheme wombat256modautocmd FileType php set omnifunc=phpcomplete#CompletePHP
In the meantime i found this interesting post on Matthew Weier O’Phinney’s blog about using . That looks like interesting stuff. So let’s add it. With it’s possible to scan a source tree. And compile a sort of index file that vim can use for lookups.
$ sudo aptitude install exuberant-ctags
$ mkdir ~/.vim/tags
Creating an index file is a piece of cake. Move to a source directory and issue the following command.
$ cd /some/path
$ ctags-exuberant -R -f ~/.vim/tags/filename -h “.php”
–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/’
This will scan the whole directory structure recursively while using the regular expressions to extract useful information from the source files it finds. When done and when the parameter –totals=yes is used the following output is displayed. But probably with different numbers.
2375 files, 466018 lines (14628 kB) scanned in 11.7 seconds (1246 kB/s)
199296 tags added to tag file
199296 tags sorted in 0.00 seconds
Time to enable tags. I want to use multiple files. Some standard files for common frameworks / libraries. And a tag file per project.
$ vim ~/.vimrc
set tags=tags;~/.vim/tags/filename
So let’s start vim and have a look at what we have so far. The first thing we do when vim has started is launch the :Project plugin.
$ vim
:Project
The project plugin took some time to get used to. But it’s a very convenient plugin. And easy to get the hang of. It’s possible to create the project settings by hand. But the plugin comes with a build in tool for this. While in :Project mode and hitting \C will make it easy to create new projects.
$ vim
:Project
\C
This will guide you through the process with a few short and simple questions.
Enter the Name of the Entry: [ project name ]
Enter the Absolute Directory to Load: [ absolute path ]
Enter the CD parameter: [ path to move into ]
Enter the File Filter: [ file filter : *.php ]
When that’s done the screen will be in edit mode inside the .vimproject file. Displaying something like this.
Project name=/path/to/project CD=/path/to/project filter=”*.php” {
filename.ext
folder———————————————————-
}
It’s possible to alter the project setup here. Like adding more files. Or even adding files from other locations outside of the project.
Project name=/path/to/project CD=/path/to/project filter=”*.php” {
filename.ext
folder———————————————————-External=/some/other/path CD=/some/other/path filter=”*.php” {
filename.ext
}
}
When done editing. Just do like normally in vim.
:w
Pretty cool we have a project browser on the left. That is easy to navigate with the arrow keys. And a work canvas on the right.
Time to test the ctags created index files. Place the cursor at the beginning of a string that you want to lookup. And hit CTRL + ] and CTRL + T to get back. Another cool way to open the source file is by using horizontal split windows by using CTRL + W ].
Testing auto-complete is just as easy. Type some php core function name partly str_ and hit CTRL + x and CTRL + o. This will display the following scrollable drop down..
That’s about it. I had good fun exploring all the features and possibilities. And have only scratched the surface. One more thing i found on Matthew’s blog was a way to test and run PHP script from vim. Awesome stuff. You can read about it . Although i like vim. I don’t think i will be leaving ZS any time soon.
***\C(注意输入“\”跟“Shift+c”要快点)