浅谈在ruby中开发vim插件的教程

来源:爱站网时间:2018-09-29编辑:网友分享
今天小编来浅谈一下在ruby中开发vim插件的教程,感兴趣的朋友跟小编一起来了解一下吧!

  今天小编来浅谈一下在ruby中开发vim插件的教程,感兴趣的朋友跟小编一起来了解一下吧!

  在开始编写插件之前,你需要确认 Vim 是否支持 Ruby,通过以下命令来判别:

  $ vim --version | grep +ruby

  如果输出为空,则表示你当前的vim不支持Ruby,需要重新编译一下,并启用对Ruby的支持。

  顺便说下我当前的环境是:

  vim 7.4

  ruby 2.1.0

  环境检查没有问题那么就开始吧。 在~/.vim/plugin目录下创建一个 demo.vim 文件。

  在开头写上以下代码:

  if !has('ruby')

  echo "Error: Required vim compiled with +ruby"

  finish

  endif

  这段代码就是用 VimL 编写的,它将检查 Vim 是否支持 Ruby。

  接下来再判断该插件是否已经加载过了,以免重复加载:

  if exists('g:loaded_ruby_demo_plugin')

  finish

  endif

  let g:loaded_ruby_demo_plugin = 1

  所有的检查都没有问题,则开始插件的正文了。先定义一个函数。

  function! DemoFun1()

  ruby

  buf = VIM::Buffer.current

  puts "current buffer name: #{buf.name} number: #{buf.number} length: #{buf.length}"

  EOF

  endfunction

  function与endfunction是vim中用于定义函数的,在”ruby ”和”eof”之间部分的是ruby代码。这个例子是输出当前缓冲区的名字、编号以及总行数。>

  然后再举个例子说下函数的参数处理。

  function! DemoFun2(arg1)

  ruby

  puts "you input: #{VIM.evaluate('a:arg1')}"

  EOF

  endfunction

  这里定义了一个函数接收一个参数,然后将其输出。使用 VIM.evaluate 将vim的变量转化为Ruby的变量。

  为了方便我们再定义两个命令,以简化对这两个函数的调用。

  command! -nargs=0 DemoFun1 call DemoFun1()

  command! -nargs=1 -rang DemoFun2 call DemoFun2()

  要获取完整的代码可以访问: https://gist.github.com/wusuopu/c1182efefa85d4f6839b

  接下来再简单说下vim中Ruby的使用。

  vim为Ruby提供了一个VIM模块,通过它可以在Ruby中访问vim的接口。同时还提供了两个全局变量:$curwin、$curbuf,它们分别代表了当前窗口对象以及当前缓冲区对象。

  VIM模块中有 Buffer 和 Window 两个对象,分别是用来对缓冲区和窗口进行操作的。同时VIM模块还提供了message、set_option、command和evaluate四个函数。

  想要查看更多的帮忙信息,可以在vim中执行如下命令:

  :help ruby

  以上就是在ruby中开发vim插件的教程了,想必都了解了吧,更多相关内容请继续关注爱站技术频道。

上一篇:在Windows中Ruby on Rails开发环境安装配置的详细教程

下一篇:Ruby迭代器使用技巧深度解析

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载