国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Ruby - ruby開發vim插件小結

ruby開發vim插件小結

2020-04-16 13:20hebedich Ruby

作為一個Vimmer和Pythoner,之前折騰過用python編寫vim插件。現在作為半個Rubist,又開始繼續折騰。

在開始編寫插件之前,你需要確認 Vim 是否支持 Ruby,通過以下命令來判別:

?
1
$ vim --version | grep +ruby

如果輸出為空,則表示你當前的vim不支持Ruby,需要重新編譯一下,并啟用對Ruby的支持。

順便說下我當前的環境是:

vim 7.4
ruby 2.1.0
環境檢查沒有問題那么就開始吧。 在~/.vim/plugin目錄下創建一個 demo.vim 文件。

在開頭寫上以下代碼:

?
1
2
3
4
if !has('ruby')
 echo "Error: Required vim compiled with +ruby"
 finish
endif

這段代碼就是用 VimL 編寫的,它將檢查 Vim 是否支持 Ruby。

接下來再判斷該插件是否已經加載過了,以免重復加載:

?
1
2
3
4
if exists('g:loaded_ruby_demo_plugin')
 finish
endif
let g:loaded_ruby_demo_plugin = 1

所有的檢查都沒有問題,則開始插件的正文了。先定義一個函數。

?
1
2
3
4
5
6
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(),應該就可以看到輸出結果了。

然后再舉個例子說下函數的參數處理。

?
1
2
3
4
5
function! DemoFun2(arg1)
ruby<< EOF
puts "you input: #{VIM.evaluate('a:arg1')}"
EOF
endfunction

這里定義了一個函數接收一個參數,然后將其輸出。使用 VIM.evaluate 將vim的變量轉化為Ruby的變量。

為了方便我們再定義兩個命令,以簡化對這兩個函數的調用。

?
1
2
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中執行如下命令:

?
1
:help ruby

好了,先寫這么多吧,其余的自己去嘗試吧。

延伸 · 閱讀

精彩推薦
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

    前面,我們說 Ruby 沒有函數,只有方法.而且實際上有不止一種方法.這一節我們介紹 訪問控制 (accesscontrols). 想想當我們在最高層而不是在一個類的定義里定義...

    ruby教程網3572020-04-08
  • RubyRuby簡潔學習筆記(一):字符串、數字、類和對象

    Ruby簡潔學習筆記(一):字符串、數字、類和對象

    這篇文章主要介紹了Ruby簡潔學習筆記(一):字符串、數字、類和對象,本文是學習筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動態語言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyCentOS中配置Ruby on Rails環境

    CentOS中配置Ruby on Rails環境

    經過一個上午的折騰,終于把ROR環境在CentOS中搞定,繞了很多彎路,把文章寫下來總結一下 ...

    可樂加糖4762020-04-12
  • RubyRuby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼,數據是隨機的,所以每次的記錄都會不同。 ...

    ruby教程網2962020-04-10
  • RubyRuby環境下安裝使用bundler來管理多版本的gem

    Ruby環境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應用實例來進行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyRuby設計模式編程中使用Builder建造者模式的實例

    Ruby設計模式編程中使用Builder建造者模式的實例

    這篇文章主要介紹了Ruby設計模式編程中使用Builder建造者模式的實例,建造者模式將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表...

    范孝鵬2192020-05-07
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av电影一区二区 | 中文字幕一区二区三区不卡 | 久久一级| 久久久一| 欧美二三区| 成人在线视频免费观看 | 欧美日韩一区二区三区不卡视频 | 黄色在线免费 | 国产精品视频 | 亚洲激情精品 | 欧美日韩国产一区二区三区不卡 | 国产成人精品免费 | 深夜视频在线 | 欧美高清成人 | 亚洲人成网站在e线播放 | 夜夜爽99久久国产综合精品女不卡 | 亚洲成av人影片在线观看 | 亚洲精品免费播放 | 国产精品国产自产拍高清av | 97色婷婷成人综合在线观看 | 欧美日韩国产一区二区三区不卡 | 毛片网| 欧美精品v国产精品v日韩精品 | 午夜电影 | 色噜噜狠狠狠综合曰曰曰 | 日本大人吃奶视频xxxx | 毛片在线视频 | 久久国产精品视频 | 91国自产精品中文字幕亚洲 | 久久久久久久一区 | 天天射天天干 | 日韩中文字幕在线观看 | 中文字幕一级毛片 | 一区二区三区 | 久久久国产精品 | 久久国产成人 | 中文字幕一区二区三区乱码在线 | 国产三级在线观看 | 伊人在线 | 一区二区三区免费在线 | 午夜社区|