用ruby编写vim脚本

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

$ vim --version | grep +ruby

如果输出为空,则表示你当前的 vim 不支持 Ruby,需要重新编译一下,并启用对 Ruby 的支持。
如果没有问题那就开始吧!

下面的示例是我用来把本地图片上传到七牛云图床。

新建

.vim/autoload中新建test.vim,复制以下代码

function! qiniu#get_picture_url()
ruby << EOF
class Qiniu
  def initialize
    @buffer = Vim::Buffer.current
  end

  def get_current_line
    s = @buffer.line       # gets the current line
    # qiniu 是七牛云的一个gem,修改了部分代码,并重命名。
    real_link = `qiniu #{s}`
    real_link = real_link.split(/\n/).last
    Vim::Buffer.current.line = "![](#{real_link})"     # sets the current line number
  end
end
gem = Qiniu.new
gem.get_current_line
EOF
endfunction

绑定快捷键

.vimrc中,映射快捷键

noremap <leader>qn :cal qiniu#get_picture_url()<cr><CR>

[——————————————————————————]

我把图片的本地地址粘贴到 vim 中,然后使用qn快捷键,本地地址就会被修改成该图片在七牛云的外链,经常写博客用到

vim API

在 vim 中执行:h ruby 查看 vim 提供 ruby 的 API

演示