saberma

分享技术实践,创业历程

Vim使用

2009-10-10

安装

sudo apt-get install libncurses-dev ncurses-term
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
tar -xvf vim-7.2.tar.bz2
cd vim72
./configure --enable-multibyte --enable-rubyinterp
sudo make
sudo make install

#安装rails的vim插件
git clone git://github.com/saberma/vimfiles.git ~/.vim
ln -s ~/.vim/vimrc ~/.vimrc

#Mac操作系统下需要安装MacVIM,否则Fuzzy_finder无法使用(原生的vim没有包含ruby)
Download MacVim. Then, in your ~/.bash_profile type in the following:
alias vim=”/Applications/MacVim.app/Contents/MacOS/Vim”

Vim常用命令

#打开类似于textmate的查找文件功能,支持目录限制符/
ctrl + t 
#历史文件列表
ctrl + b
#刷新查找时显示的候选文件
\r
#打开浏览器查看Rails帮助
shift + RR
#打开浏览器查看Ruby帮助
shift + RB

#大小写转换
#选中要转换的字符
vw
#转换为大写字母
shift + u
#转换为小写字母
u

#字符串前后增加双引号
ysiw"
#字符串前后双引号改为单引号
cs"'
#去掉字符串前后单引号
ds'
#格式化已识别的文件内容
gg=G

多窗口

在Normal模式下,按ctrl+n可以新开一个横向窗口
在按ctrl+t打开文件列表后,按CTRL+K可以新开一个纵向窗口

ctrl+w+k可以将焦点切换至向上的窗口,k可以换为h、j、l等控制其他方向

在打开的文件中,按ctrl+g可以查看文件所在位置

Vim的代码片段(snippet)

在eclipse中编写java时,输入main按下tab键时,eclipse会自动插入整段main方法
这就是IDE常用的snippet功能了,VIM当然也是支持的

进入~/.vim,你会看到snippets目录,这里保存了所有的snippet
其子目录是文件类型名称,这样就可以区分不同类型文件使用不同的snippet

里面的文件名称就是snippet的缩写,在文件中按缩写加tab,文件内容就出来了

你可以定义自己的snippet,比如定义枚举项的snippet
创建snippets/ruby-rails/aen.snippet,内容如下:

<+ENUM+> = [
  %w{<+内容+> <+内容1+> <+内容2+>}, 
  %w{1        2         3        }
]

在rb文件中输入aen加tab键,看,上面的内容出来了吧,不断按tab可以依次修改"<++>"包含的内容

其他

当你敲入vim命令进入后,退出vim时不要使用ctrl+z强行终止,这样会产生临时文件

而应该在normal状态下输入:q回车(:q!回车表示不提示保存直接退出)

参考资料

vim使用进阶
善用佳软
vim命令图解

blog comments powered by Disqus
Fork me on GitHub