【问题标题】:Is there a way to fold all multi-line Ruby comments in Vim?有没有办法在 Vim 中折叠所有多行 Ruby 注释?
【发布时间】:2013-02-10 22:35:15
【问题描述】:

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

在 MacVim 中,我可以通过选择代码行并单击 Tools > Folding > Create Fold 手动折叠代码行,但有没有办法使用某种快捷方式自动隐藏所有 cmets?

例如下面的代码:

  # 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

【问题讨论】:

  • 这与你的问题无关,但你不应该使用菜单:Vim 有很好的默认映射来创建/关闭/打开/删除和切换折叠。 :h folds 会告诉你关于在 Vim 中折叠的一切。

标签: ruby vim comments macvim


【解决方案1】:

你可以试试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

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

【讨论】:

  • 我输入了这些,但什么也没发生。我还有什么需要做的吗?
  • 我在发布答案之前已经尝试过了,我可以说它在这里有效:cmets 用zc 折叠,用zo 展开,用za 切换。
  • 相当延迟,但这对我很有用!我使用zM 关闭所有折叠并使用zR 打开它们。在linux.com/learn/tutorials/442438-vim-tips-folding-fun 找到了这些命令
【解决方案2】:

我猜你想玩vimfoldmethod 设置。抱歉回答有点含糊,但我这里没有 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 并享受您的折叠。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2021-09-24
    • 2010-12-16
    相关资源
    最近更新 更多