在不带花括号的语言中使用%


17

在C和类似C的语言中,我可以%用来跳到光标所在的相应花括号。这是一个众所周知的“把戏”。

但是以Ruby为例:

def fun
    [1, 2].each do |n|
    end
end 

这不起作用,因为ruby不使用中的字符matchpairs(:),{:},[:],<:>默认设置为。

我尝试设置它,但是不起作用:

:set matchpairs=def:end
E474: Invalid argument: matchpairs=def:end

我可以将其与Ruby之类的语言一起使用吗?请注意,这不是特定于Ruby的问题,其他示例可能是shell脚本(if/ fi)或Lua(function/ end),等等。

Answers:


17

您可以使用matchit插件。它已包含在现代vim发行版中,因此您使用它所要做的就是在vimrc中添加以下内容:

runtime macros/matchit.vim

如果愿意,还可以将其打包为插件。默认情况下,它可以识别许多关键字(包括defend),并且可以扩展以识别更多关键字。


1
注意:输入:runtime macros/matchit.vim无效;您需要放入vimrc并重新启动Vim ...
Martin Tournoij 2015年

我做到了 仍然对我不起作用:(
Thirupathi Thangavel

0

以下文档matchit,〜/ .vimrc中以下内容对我有用

:runtime macros/matchit.vim
filetype plugin on

欢迎光临本站!这基本上与现有的已接受答案相同。区别在于您的filetype命令:如果详细描述添加此行的原因以及它如何帮助回答问题,这可能会有所帮助。(您也有一些错别字:“ doc”,“ the”。)
Rich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.