在开始编写插件之前,你需要确认 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<<EOF buf = VIM::Buffer.current puts "current buffer name: #{buf.name} number: #{buf.number} length: #{buf.length}" EOF endfunction
function与endfunction是vim中用于定义函数的,在”ruby<<EOF”和”EOF”之间部分的是Ruby代码。这个例子是输出当前缓冲区的名字、编号以及总行数。 执行命令:call DemoFun1(),应该就可以看到输出结果了。
然后再举个例子说下函数的参数处理。
function! DemoFun2(arg1) ruby<< EOF 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(<f-args>)
要获取完整的代码可以访问: 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
好了,先写这么多吧,其余的自己去尝试吧。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 好薇2024《兵哥哥》1:124K黄金母盘[WAV+CUE]
- 胡歌.2006-珍惜(EP)【步升大风】【FLAC分轨】
- 洪荣宏.2014-拼乎自己看【华特】【WAV+CUE】
- 伊能静.1999-从脆弱到勇敢1987-1996精选2CD【华纳】【WAV+CUE】
- 刘亮鹭《汽车DJ玩主》[WAV+CUE][1.1G]
- 张杰《最接近天堂的地方》天娱传媒[WAV+CUE][1.1G]
- 群星《2022年度发烧天碟》无损黑胶碟 2CD[WAV+CUE][1.4G]
- 罗文1983-罗文甄妮-射雕英雄传(纯银AMCD)[WAV+CUE]
- 群星《亚洲故事香港纯弦》雨果UPMAGCD2024[低速原抓WAV+CUE]
- 群星《经典咏流传》限量1:1母盘直刻[低速原抓WAV+CUE]
- 庾澄庆1993《老实情歌》福茂唱片[WAV+CUE][1G]
- 许巍《在别处》美卡首版[WAV+CUE][1G]
- 林子祥《单手拍掌》华纳香港版[WAV+CUE][1G]
- 郑秀文.1997-我们的主题曲【华纳】【WAV+CUE】
- 群星.2001-生命因爱动听电影原创音乐AVCD【MEDIA】【WAV+CUE】