Sử dụng% trong các ngôn ngữ không có dấu ngoặc nhọn


17

Trong các ngôn ngữ giống như C và C, tôi có thể sử dụng %để chuyển đến dấu ngoặc nhọn tương ứng mà con trỏ đang bật. Đây là một "mánh khóe" nổi tiếng.

Nhưng trong Ruby chẳng hạn:

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

Điều này không hoạt động, vì ruby ​​không sử dụng các ký tự trong matchpairs(được đặt thành (:),{:},[:],<:>mặc định.

Tôi đã thử cài đặt nó, nhưng nó không hoạt động:

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

Tôi có thể làm điều này để làm việc với các ngôn ngữ như Ruby không? Lưu ý đây không phải là câu hỏi dành riêng cho Ruby, các ví dụ khác có thể là tập lệnh shell ( if/ fi) hoặc Lua ( function/ end) và nhiều câu hỏi khác .

Câu trả lời:


17

Bạn có thể sử dụng plugin matchit . Điều này được bao gồm trong các bản phân phối vim hiện đại, vì vậy tất cả những gì bạn phải làm để sử dụng nó là thêm phần sau vào vimrc của bạn:

runtime macros/matchit.vim

Bạn cũng có thể lấy nó đóng gói như một plugin nếu bạn thích. Nó nhận ra nhiều từ khóa theo mặc định (bao gồm defend) và có thể được mở rộng để nhận biết thêm.


1
Lưu ý: gõ :runtime macros/matchit.vimkhông hoạt động; bạn cần đưa vào vimrc của mình và khởi động lại Vim ...
Martin Tournoij

Tôi đã làm điều đó. Vẫn không làm việc cho tôi :(
Thirupathi Thangavel

0

Matchit doc sau, các bổ sung bên dưới trong ~ / .vimrc làm việc cho tôi

:runtime macros/matchit.vim
filetype plugin on

Chào mừng đến với trang web! Đây về cơ bản là câu trả lời giống như câu trả lời hiện có, được chấp nhận. Sự khác biệt là filetypelệnh của bạn : có thể hữu ích nếu bạn mô tả chi tiết lý do tại sao bạn đã thêm dòng này và cách nó giúp trả lời câu hỏi. (Bạn cũng có một vài lỗi chính tả: "doc", "the".)
Rich
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.