有没有命令可以在vim中快速跳转到Ruby代码块的结尾(或开头)?

7
有没有办法在vim中跳到Ruby块的结尾?例如:
module SomeModule

   # <Supposing that the cursor is HERE>
  def some_method
  end

end

我想用一条命令从光标所在位置到块的末尾,这可能吗?
我已经阅读了此文档,但它似乎在.rb文件上不起作用,我在某些地方读到它只适用于C语言(虽然没有尝试过)。
提前致谢。

不仅仅是C语言,据我所知只有带有类似C的语法(如C、C++、Java、C#等)使用{}来标记代码块。 - Matthew Scharley
3个回答

3
%

它适用于大多数语言,只要您的光标在或接近块标记的位置即可。

只有当光标位于“module SomeModule”的开头或结尾时,才能起作用。当光标位于其中时是不起作用的。 - Roman Gonzalez
它在我的Vim7.2安装上完美运行。在def和module上都是如此。 - greyfade
当然,其他的块导航命令也应该有效。如果它们无法正常工作,请检查您的 Ruby ftplugin 文件。 - greyfade
我忘了提到我正在使用macvim环境...可能ftplugin已经过时了,我会检查一下。 - Roman Gonzalez
在 nvim(在 Mac 上)中,它也不能直接使用 - 安装 https://github.com/tpope/vim-endwise 后才能正常工作。 - Felix

3

看起来有一个官方软件包在rubyforge,其中提供了一些支持:

Ruby ftplugin现在包括Ruby特定实现的[[, ]], [], ][, [m, ]m, [M和] M正常模式命令。这使您能够快速移动到模块,类和方法声明。

编辑: README 表明这些文件已经包含在默认的VIM发行版中,但是在Windows下的GVIM中不能使用,而'{'和'}'在Linux下的vim中似乎可以工作。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接