如何用vim来编写ruby代码?
我google了半天,都没有找到一篇完整的介绍文章。我真怀疑这写写文章的是否真的在用vim编辑ruby代码。:)说实话,vim不适合大多数人,它比较适合经常写代码的人,和记事本的区别是:如果10年没有接触电脑,我还是会使用记事本,但是几个月没有使用vim,就会忘记许多的功能。还有一个区别就是你每天使用记事本,编写代码的速度还是一样,但是如果用vim你会成倍的提高编辑速度。
我希望通过这篇文章,让你知道怎样用vim来完成编写ruby的整个过程,ruby自带了一个SciTE编辑器,我想每一个学习ruby的人都会尝试过这个工具。我们输入代码,然后按F5,然后在右侧看运行结果,如果有错误就更正,然后再F5,不停的重复这样一个过程。当然还会有许多的puts语句用来检查程序逻辑。
下面就用vim来实现这个功能:
1、安装vim-ruby
通过gem
gem install vim-ruby
vim-ruby-install.rb
直接下载:
解压后执行bin/vim-ruby-install.rb
推荐直接下载,因为gem常常很慢。
2、vim-ruby会安装下面的文件:
autoload/rubycomplete.vim -> E:/Vim/vimfiles/autoload/rubycomplete.vim ~
compiler/eruby.vim -> E:/Vim/vimfiles/compiler/eruby.vim ~
compiler/ruby.vim -> E:/Vim/vimfiles/compiler/ruby.vim ~
compiler/rubyunit.vim -> E:/Vim/vimfiles/compiler/rubyunit.vim ~
ftdetect/ruby.vim -> E:/Vim/vimfiles/ftdetect/ruby.vim ~
ftplugin/eruby.vim -> E:/Vim/vimfiles/ftplugin/eruby.vim ~
ftplugin/ruby.vim -> E:/Vim/vimfiles/ftplugin/ruby.vim ~
indent/eruby.vim -> E:/Vim/vimfiles/indent/eruby.vim ~
indent/ruby.vim -> E:/Vim/vimfiles/indent/ruby.vim ~
syntax/eruby.vim -> E:/Vim/vimfiles/syntax/eruby.vim ~
syntax/ruby.vim -> E:/Vim/vimfiles/syntax/ruby.vim ~
3、修改imfiles/ftplugin/ruby.vim 加入
map <F5> :!ruby % <CR>
map <F6> :make % <CR>
let $LANG= "en"
setlocal encoding=utf-8
syntax on
filetype on
filetype indent on
filetype plugin on
compiler ruby
4、修改vimfiles/indent/ruby.vim
加入:
setlocal expandtab
setlocal autowrite
setlocal tabstop=2 shiftwidth=2 softtabstop=2
setlocal autoindent
5、如何查找文件?可以在命令行输入文件的名称,在mswindows下面,也可以用快捷菜单选择用vim编辑。但是在vim命令行的输入下面的两个命令,是一个非常不错的方法。
:Explore
:find
6、在vim中每个编辑的文件都是一个buffer,但是在单个窗口的情况下,你看到的只是一个文件而已,用:buffers可以列出所有的buffer,或者用:ball显示所有的buffer,可以用Ctrl-^ (:e #)
在两个buffer之间快速切换。
7、quickfix,用来显示错误copen colder cnewer cc cn cp等等
8、现在你就可以用vim编写ruby代码,然后用:make %执行代码,注意这个make执行的结果是makeef文件,不会再前台显示,所以你的代码中的许多puts都无从知晓。
当然你可以用:!ruby %来执行,这样就会出现一个新的dos窗口,显示运行结果。就像你在SciTE一样。
9、设定一个快捷键比如 :map <F5> :!ruby % <CR>,这样按一下F5就可以了。
范围range 逗号分隔的两个数值,.表示当前行,可以用.-3,.+3表示一个范围。
vimgrep 多文件查找 **/ 整个目录及子目录
尽量用:close 而不是:q
Ctrl-x o 代码自动完成
Completion can be done for:
1. Whole lines |i_CTRL-X_CTRL-L|
2. keywords in the current file |i_CTRL-X_CTRL-N|
3. keywords in 'dictionary' |i_CTRL-X_CTRL-K|
4. keywords in 'thesaurus', thesaurus-style |i_CTRL-X_CTRL-T|
5. keywords in the current and included files |i_CTRL-X_CTRL-I|
6. tags |i_CTRL-X_CTRL-]|
7. file names |i_CTRL-X_CTRL-F|
8. definitions or macros |i_CTRL-X_CTRL-D|
9. Vim command-line |i_CTRL-X_CTRL-V|
10. User defined completion |i_CTRL-X_CTRL-U|
11. omni completion |i_CTRL-X_CTRL-O|
12. Spelling suggestions |i_CTRL-X_s|
13. keywords in 'complete' |i_CTRL-N|
All these (except 2) are done in CTRL-X mode. This is a sub-mode of Insert
and Replace modes. You enter CTRL-X mode by typing CTRL-X and one of the
CTRL-X commands. You exit CTRL-X mode by typing a key that is not a valid
CTRL-X mode command. Valid keys are the CTRL-X command itself, CTRL-N (next),
and CTRL-P (previous).
其中CTRL-x CTRL-N自动补全变量
CTRL-x CTRL-o 补全关键字
[[i] 本帖最后由 弯月圆刀 于 2008-9-19 17:12 编辑 [/i]] 在unix系统上通过aap安装vim之后,记得要讲原来的vim改名一下。比如将/bin/vim 改成其他的名字。
然后再将/usr/local/share/vim/current/vimrc_example.vim复制到~/.vimrc,这样新的vim就会正常工作了。
[[i] 本帖最后由 弯月圆刀 于 2008-9-19 11:40 编辑 [/i]] 在安装之后,你会看到有一个vimfiles目录,这个目录在vim主程序之外,对着里面的文件进行修改会更加安全。(不会影响主程序)。如果同时配置文件同时存在于vimfiles目录和主目录,vimfiles优先。[color=Red][size=5]比较好的做法是:你最好不要去改变vim72下面的文件,而是应该将它复制到vimfiles对应的目录下面,然后修改之。[/size][/color]
安装doc文件之后,最好运行一下helptag docdir,这个新安装的帮助文件就会起作用了。
[[i] 本帖最后由 弯月圆刀 于 2008-9-19 17:07 编辑 [/i]] [code]if !exists( "*EndToken" )
function EndToken()
let current_line = getline( '.' )
let braces_at_end = '{\s*\(|\(,\|\s\|\w\)*|\s*\)\?$'
if match( current_line, braces_at_end ) >= 0
return '}'
else
return 'end'
endif
endfunction
endif
imap <S-CR> <ESC>:execute 'normal o' . EndToken()<CR>O
[/code]将上面的代码写到一个文件:ruby_extra.vim,放到vimfiles/ftplugin/下面,就会自动补全do end等等 将matchit.vim从vim72/macros复制到vimfiles/plugin就能够在if end do end之间跳转。
页:
[1]
