2013-02-09 94 views
0

我正在研究一個紅寶石,我希望能夠隱藏文件中的所有文檔註釋,因爲它們比讀取或編寫代碼更適合使用庫的人。我看到評論的價值,但是當我在編寫代碼時,他們在視覺上讓我感到分心。有沒有辦法在Vim中摺疊所有多行Ruby註釋?

在MacVim中,我可以通過選擇它們並單擊Tools > Folding > Create Fold手動摺疊代碼行,但有沒有辦法使用某種快捷方式自動隱藏所有註釋?

例如,下面的代碼:

# Returns a 2D array for Rails select helper options. 
    # Also used internally for Formtastic support 
    # 
    # ==== Example 
    # # Create an Enum with some elements 
    # class Priority < ClassyEnum::Base 
    # end 
    # 
    # class Priority::Low < Priority; end 
    # class Priority::ReallyHigh < Priority; end 
    # 
    # Priority.select_options # => [["Low", "low"], ["Really High", "really_high"]] 
    def select_options 
    map {|e| [e.text, e.to_s] } 
    end 

將顯示爲:

def select_options 
    map {|e| [e.text, e.to_s] } 
    end 
+1

這與你的問題無關,但你不應該使用菜單:Vim有非常好的默認映射來創建/關閉/打開/刪除和切換摺疊。 ':h fold'會告訴你有關在Vim中摺疊的所有信息。 – romainl 2013-02-10 14:36:29

回答

2

你可以嘗試this method

:set fdm=expr 
:set fde=getline(v:lnum)=~'^\\s#'?1:getline(prevnonblank(v:lnum))=~'^\\s#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0 

的問題是,這種方法將成爲唯一的摺疊選項,這可能有點偏激。

+0

我進入了那些但沒有發生。還有什麼我需要做的嗎? – 2013-02-10 14:03:00

+0

我在發佈我的答案之前試過了,我可以說它在這裏工作:評論與'zc'摺疊,展開與'zo'和切換與'za'。 – romainl 2013-02-10 14:33:00

+0

相當延遲,但這對我很好!我使用'zM'來關閉所有的摺疊和'zR'來打開它們。在http://www.linux.com/learn/tutorials/442438-vim-tips-folding-fun上找到這些命令 – 2014-08-27 11:40:57

0

我猜你會喜歡vimfoldmethod設置玩。對不起,稍微模糊的答案,但我沒有MacVim,所以你應該自己調整我的建議中的目錄/文件名。

首先,在命令模式下嘗試:setlocal foldmethod=syntax以啓用僅在當前文件中摺疊的功能。如果有效,則安裝了所有必備軟件(即,ruby.vim語法文件)。嘗試將let ruby_fold=1添加到您的.vimrc文件中。後者應該能夠摺疊所有Ruby文件(或者,你可以設置explicetely摺疊到真正用於支持與set foldmethod=syntax摺疊所有文件類型。)

現在你要找到ruby.vim在你的文件系統來調整它。爲了給出提示,在Linux發行版上它位於/usr/share/vim/vim73/syntax/ruby.vim。我的語法文件可以摺疊「可能」摺疊的所有東西(例如功能,方法等)。將原始文件複製到您的目錄並根據您的需要進行調整。通過它瀏覽(例如,通過搜索fold),並刪除fold關鍵字,您不希望應用摺疊。語法文件中的名字是不言自明的,所以在這裏你不會遇到麻煩。

重新啓動vim並享受摺疊。希望有所幫助。

相關問題