Utilizzo di% nelle lingue senza parentesi graffe


17

In linguaggi di tipo C e C, posso usare %per saltare alla parentesi graffa corrispondente su cui si trova il cursore. Questo è un noto "trucco".

Ma in Ruby per esempio:

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

Questo non funziona, dal momento che ruby ​​non usa i caratteri in matchpairs(impostato di (:),{:},[:],<:>default.

Ho provato a impostarlo, ma non funziona:

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

Posso farlo funzionare anche con lingue come Ruby? Nota che questa non è una domanda specifica su Ruby, altri esempi potrebbero essere gli script di shell ( if/ fi) o Lua ( function/ end) e molti altri ancora.

Risposte:


17

Puoi usare il plugin matchit . Questo è incluso nelle moderne distribuzioni vim, quindi tutto ciò che devi fare per usarlo è aggiungere quanto segue al tuo vimrc:

runtime macros/matchit.vim

Puoi anche comprarlo come plugin se preferisci. Riconosce molte parole chiave per impostazione predefinita (incluso defe end) e può essere esteso per riconoscerne altre.


1
Nota: la digitazione :runtime macros/matchit.vimnon funziona; devi inserire Vimrc e riavviare Vim ...
Martin Tournoij,

L'ho fatto. Non funziona ancora per me :(
Thirupathi Thangavel,

0

Il seguente documento corrispondente, le aggiunte seguenti in ~ / .vimrc hanno funzionato per me

:runtime macros/matchit.vim
filetype plugin on

Benvenuti nel sito! Questa è sostanzialmente la stessa risposta della risposta esistente accettata. La differenza è il tuo filetypecomando: potrebbe essere utile se hai descritto in dettaglio perché hai aggiunto questa linea e come aiuta a rispondere alla domanda. (Hai anche un paio di errori di battitura: "doc", "the the".)
Rich
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.