ruby开发vim插件小结
在开始编写插件之前,你需要确认Vim是否支持Ruby,通过以下命令来判别:
$vim--version|grep+ruby
如果输出为空,则表示你当前的vim不支持Ruby,需要重新编译一下,并启用对Ruby的支持。
顺便说下我当前的环境是:
vim7.4
ruby2.1.0
环境检查没有问题那么就开始吧。在~/.vim/plugin目录下创建一个demo.vim文件。
在开头写上以下代码:
if!has("ruby") echo"Error:Requiredvimcompiledwith+ruby" finish endif
这段代码就是用VimL编写的,它将检查Vim是否支持Ruby。
接下来再判断该插件是否已经加载过了,以免重复加载:
ifexists("g:loaded_ruby_demo_plugin") finish endif letg:loaded_ruby_demo_plugin=1
所有的检查都没有问题,则开始插件的正文了。先定义一个函数。
function!DemoFun1() ruby<<EOF buf=VIM::Buffer.current puts"currentbuffername:#{buf.name}number:#{buf.number}length:#{buf.length}" EOF endfunction
function与endfunction是vim中用于定义函数的,在”ruby<<EOF”和”EOF”之间部分的是Ruby代码。这个例子是输出当前缓冲区的名字、编号以及总行数。执行命令:callDemoFun1(),应该就可以看到输出结果了。
然后再举个例子说下函数的参数处理。
function!DemoFun2(arg1) ruby<<EOF puts"youinput:#{VIM.evaluate("a:arg1")}" EOF endfunction
这里定义了一个函数接收一个参数,然后将其输出。使用VIM.evaluate将vim的变量转化为Ruby的变量。
为了方便我们再定义两个命令,以简化对这两个函数的调用。
command!-nargs=0DemoFun1callDemoFun1() command!-nargs=1-rangDemoFun2callDemoFun2(<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中执行如下命令:
:helpruby
好了,先写这么多吧,其余的自己去尝试吧。
相关文章
- Centos8 安装Vim
- linux vim查看下一页,Linux下vi和vim模式相互切换「建议收藏」
- 从零开始配置 vim(12)——主题配置
- 从零开始配置 vim(13)——标签页插件
- linux vim常用命令_linuxvi编辑器命令
- Vim搜索关键字[通俗易懂]
- Linux学习——vim
- Linux-vim编辑器
- Linux系统下Ruby版本的升级(linux升级ruby)
- Vim操作:Linux走向新时代(linux的vim操作)
- Linux安装Vim:快速轻松上手(linux安装vim)
- 修复linux下Vim运行出错的方法(linuxvim错误)
- Linux 下Vim与Vi编辑器的比较(linuxvim和vi)
- Vim的Linux只读模式:让你安全进行编辑(vim只读linux)
- 快速学习Linux终端中Vim的简单使用(linux怎么使用vim)
- /vim 编辑Linux终端vi/vim编辑:简单而有效(linux终端vi)
- Vim 编辑多个文件
- 掌握VIM:Linux必备的文本编辑技能(linuxvim技巧)
- Connecting Ruby to MySQL: A Comprehensive Guide for Developers(ruby连接mysql)
- Linux下如何安装Vim编辑器(linux中安装vim)
- 两种技术的融合借助 Ruby 与 Redis 实现强大的数据处理(ruby和redis)
- 部署用Ruby和Redis远程部署配置生产环境(ruby redis远程)
- 利用Redis集群搭建Ruby缓存系统(redis集群 ruby)
- Android中vim编辑器进阶的使用介绍
- Vim命令高级用法