Використання% мов без фігурних дужок


17

На мовах, подібних С та С, я можу використовувати %перехід до відповідної фігурної дужки, на якій курсор. Це добре відомий «трюк».

Але в Рубі, наприклад:

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

Це не працює, оскільки в рубіні не використовуються символи matchpairs(встановлено (:),{:},[:],<:>за замовчуванням.

Я спробував це встановити, але це не працює:

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

Чи можу я змусити це також працювати з такими мовами, як Рубі? Зверніть увагу, що це не специфічне для Ruby питання. Іншими прикладами можуть бути скрипти оболонки ( if/ fi) або Lua ( function/ end) та багато інших.

Відповіді:


17

Ви можете використовувати плагін matchit . Це включено в сучасні дистрибутиви vim, тому все, що вам потрібно зробити, - це додати наступне до вашого vimrc:

runtime macros/matchit.vim

Ви також можете отримати його в упаковці як плагін, якщо вам зручніше. Він розпізнає безліч ключових слів за замовчуванням (включаючи defта end) і може бути розширений, щоб розпізнати більше.


1
Примітка: введення тексту :runtime macros/matchit.vimне працює; вам потрібно помістити свій vimrc і перезапустити Vim ...
Martin Tournoij

Я це зробив. Все ще не працює для мене :(
Thirupathi Thangavel

0

Наступні doc matchit, додатки, наведені нижче в ~ / .vimrc, працювали на мене

:runtime macros/matchit.vim
filetype plugin on

Ласкаво просимо на сайт! Це в основному та сама відповідь, що і існуюча, прийнята відповідь. Різниця полягає у вашій filetypeкоманді: це може бути корисно, якщо ви детально описали, чому ви додали цей рядок, і як це допомагає відповісти на питання. (У вас також є кілька помилок друку: "doc", "the".)
Багатий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.