Verwenden von% in Sprachen ohne geschweifte Klammern

17

In C- und C-ähnlichen Sprachen kann ich %zu der entsprechenden geschweiften Klammer springen, auf der sich der Cursor befindet. Dies ist ein bekannter "Trick".

Aber in Ruby zum Beispiel:

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

Dies funktioniert nicht, da Ruby die Zeichen in matchpairs( (:),{:},[:],<:>standardmäßig auf) nicht verwendet.

Ich habe versucht, das einzustellen, aber es funktioniert nicht:

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

Kann ich das auch für Sprachen wie Ruby verwenden? Beachten Sie, dass dies keine Ruby-spezifische Frage ist. Andere Beispiele sind Shell-Skripte ( if/ fi) oder Lua ( function/ end) und viele, viele mehr.

Martin Tournoij
quelle

Antworten:

17

Sie können das Matchit- Plugin verwenden. Dies ist in modernen vim-Distributionen enthalten. Alles, was Sie tun müssen, um es zu verwenden, ist Folgendes zu Ihrem vimrc hinzuzufügen:

runtime macros/matchit.vim

Sie können es auch als Plugin packen lassen, wenn Sie es vorziehen. Es erkennt standardmäßig viele Schlüsselwörter (einschließlich defund end) und kann erweitert werden, um mehr zu erkennen.

xthrd
quelle
1
Hinweis: Das Tippen :runtime macros/matchit.vimfunktioniert nicht. Sie müssen in Ihrem vimrc setzen und neu starten Vim ...
Martin Tournoij
Ich habe das gemacht. Funktioniert immer noch nicht bei mir :(
Thirupathi Thangavel
0

Das folgende Dokument passt, die Zusätze unten in ~ / .vimrc haben bei mir funktioniert

:runtime macros/matchit.vim
filetype plugin on
John
quelle
Willkommen auf der Seite! Dies ist im Grunde die gleiche Antwort wie die vorhandene, akzeptierte Antwort. Der Unterschied liegt in Ihrem filetypeBefehl: Es kann hilfreich sein, wenn Sie ausführlich beschrieben haben, warum Sie diese Zeile hinzugefügt haben und wie dies zur Beantwortung der Frage beiträgt. (Sie haben auch ein paar Tippfehler: "doc", "the the".)
Rich