Menggunakan% dalam bahasa tanpa kurung kurawal


17

Dalam bahasa C dan seperti C, saya bisa gunakan %untuk melompat ke kurung kurawal yang sesuai dengan kursor aktif. Ini adalah "trik" yang terkenal.

Tetapi dalam Ruby misalnya:

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

Ini tidak berfungsi, karena ruby ​​tidak menggunakan karakter dalam matchpairs(diatur (:),{:},[:],<:>secara default.

Saya mencoba pengaturan itu, tetapi tidak berhasil:

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

Bisakah saya membuat ini berfungsi dengan bahasa seperti Ruby juga? Perhatikan ini bukan pertanyaan khusus-Ruby, contoh lain mungkin skrip shell ( if/ fi) atau Lua ( function/ end), dan banyak lagi.

Jawaban:


17

Anda dapat menggunakan plugin matchit . Ini termasuk dalam distribusi vim modern, jadi yang harus Anda lakukan untuk menggunakannya adalah menambahkan yang berikut ke vimrc Anda:

runtime macros/matchit.vim

Anda juga bisa mendapatkannya dikemas sebagai plugin jika Anda mau. Ini mengenali banyak kata kunci secara default (termasuk defdan end) dan dapat diperluas untuk mengenali lebih banyak.


1
Catatan: mengetik :runtime macros/matchit.vimtidak berfungsi; Anda perlu dimasukkan ke dalam vimrc Anda dan restart Vim ...
Martin Tournoij

Saya melakukan itu. Masih tidak bekerja untuk saya :(
Thirupathi Thangavel

0

Dokumen doc berikut, tambahan di bawah ini di ~ / .vimrc bekerja untuk saya

:runtime macros/matchit.vim
filetype plugin on

Selamat datang di situs ini! Ini pada dasarnya jawaban yang sama dengan jawaban yang ada dan diterima. Perbedaannya adalah filetypeperintah Anda : mungkin akan membantu jika Anda menjelaskan secara terperinci mengapa Anda menambahkan baris ini dan bagaimana ini membantu menjawab pertanyaan. (Anda juga mendapatkan beberapa kesalahan ketik: "doc", "the".)
Rich
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.