在最近我嘗試過的基於Eclipse的編輯器之一(我認爲它是RubyMine),當打開一個Ruby關鍵字或關閉了一個方法或塊被選中,相應的打開/關閉關鍵字被突出顯示。類似於Vim能夠突出顯示對應的開放/關閉括號的方式。例如,如果我選擇了'def',它會突出顯示相應的'結束'。它也適用於do/end塊。Vim:突出顯示Ruby中的關鍵字對(def/end,do/end等)
這真的很方便,特別是對於那些很長且有時嵌套嚴重的Rspec文件。
有人知道如何在Vim中實現這個嗎?
在最近我嘗試過的基於Eclipse的編輯器之一(我認爲它是RubyMine),當打開一個Ruby關鍵字或關閉了一個方法或塊被選中,相應的打開/關閉關鍵字被突出顯示。類似於Vim能夠突出顯示對應的開放/關閉括號的方式。例如,如果我選擇了'def',它會突出顯示相應的'結束'。它也適用於do/end塊。Vim:突出顯示Ruby中的關鍵字對(def/end,do/end等)
這真的很方便,特別是對於那些很長且有時嵌套嚴重的Rspec文件。
有人知道如何在Vim中實現這個嗎?
看起來像這樣的vim插件做paren-matching:http://vimdoc.sourceforge.net/htmldoc/pi_paren.html 你可以挖掘到該代碼,看看如何擴展它來匹配其他的東西。
它不會工作,因爲':help matchpairs'說: 目前只允許單字節字符對,他們必須有所不同。 – 2010-08-17 14:36:16
是的,它現在說...但代碼會給出如何進行paren-matching的想法,然後你可以擴展它,以便它將支持多字符對是嗎?這是一個開始:) – 2010-08-18 10:25:33
由於匹配設置接受單個字符(請參閱:幫助匹配對),因此VIM(直到7.2)無法突出顯示結束'if/end'對。 我建議使用摺疊代替,只要你正確地縮進代碼:
:set foldmethod=indent
然後使用:zc
,za
以確保你在正確的塊是。
如果你使用Vim 7.3,你應該有MatchIt vim宏可用。
將runtime macros/matchit.vim
添加到您的.vimrc
文件中,您應該可以使用%來匹配紅寶石塊。
你可以看看ruby的filetype插件,看看它會在它之間移動。
完美!它比':fold foldmethod = indent'和'zc' +1更好 – 2013-06-11 09:58:24
我發現這個插件,當搜尋關於它的工作原理基本Ruby代碼相同的問題的答案,但我沒有測試出來Rspec的等
通過pathogen只要安裝它,並添加let g:hl_matchit_enable_on_vim_startup = 1
看看ruby-matchit.vim - 它允許你在'def''' end'和'class'..'end'和公司使用'%'之間跳動。邏輯應該是你想要的一樣。 http://vim.sourceforge.net/scripts/script.php?script_id=290 – Telemachus 2010-08-05 11:57:23
另一個有用的用於'x' ...'end'對的Vim插件是Tim Pope的'endwise',它將自動插入一個'end'每當你開始一個部分需要一個:http://github.com/tpope/vim-endwise – Telemachus 2010-08-05 12:15:27
感謝您的評論Telemachus。這些不是我正在尋找的東西,但仍然有幫助。 ruby-matchit可以達到同樣的目的,但如果可能的話,我更喜歡我的問題中所述的突出顯示。一旦我瞭解了更多關於Vim的知識,我可以調查是否有可能實現自己。 – pakeha 2010-08-05 21:44:30