1

我正在研究一个 Ruby gem,我希望能够隐藏文件中的所有文档注释,因为它们更适合使用库的人,而不是阅读或编写代码。我看到了评论的价值,但是当我处理代码时,它们在视觉上分散了我的注意力。

在 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
4

2 回答 2

3

你可以试试这个方法

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

问题是这种方法将成为唯一的折叠选项,所以这可能有点极端。

于 2013-02-10T08:41:43.120 回答
0

我猜你想玩vim'sfoldmethod设置。抱歉回答有点模糊,但我这里没有 MacVim,所以你应该自己调整我的建议中的目录/文件名。

首先,尝试:setlocal foldmethod=syntax在命令模式下仅在当前文件中启用折叠。如果它有效,则您已安装所有先决条件(即ruby.vim语法文件)。尝试添加let ruby_fold=1到您的.vimrc文件中。后者应该启用折叠所有 ruby​​ 文件(或者,或者,您可以明确地将折叠设置为 true 用于支持折叠的所有文件类型set foldmethod=syntax。)

现在你要找到ruby.vim你的文件系统来调整它。提示一下,在 Linux 发行版上,它位于/usr/share/vim/vim73/syntax/ruby.vim. 我的语法文件允许折叠所有“可能”折叠的东西(例如函数、方法等)。将原始文件复制到您的$HOME/.vim/syntax目录并根据您的需要进行调整。浏览它(fold例如,通过搜索)并删除fold您不希望应用折叠的关键字。语法文件中的名称是不言自明的,所以你不会在这里遇到麻烦。

重新启动 vim 并享受你的折叠。希望有帮助。

于 2013-02-10T05:29:50.633 回答