2012-01-22 29 views
12

Tôi đã tìm kiếm gần xa và không tìm thấy plugin nào có thể chỉ đơn giản là tự động đóng một tập hợp dấu ngoặc đơn như Textmate. Ví dụ:Plugin Vim cho dấu ngoặc đơn 'tự động đóng'?

Vim  : (*manually close parens* →) 
Textmate: (*Auto closes parens*) 

Nếu bạn có thể mô tả plugin cho điều này, tôi sẽ rất hữu ích. Cảm ơn!

Trả lời

10

tôi sử dụng AutoPairs. Bạn có thể lấy nó ở đây:

https://github.com/jiangmiao/auto-pairs.git

Nếu bạn đọc các tài liệu, nó có rất nhiều tùy chọn trong đó bao gồm hầu hết các tình huống.

+0

auto-cặp có thể phá vỡ một số bản đồ chính. Ví dụ å không hoạt động trên bàn phím tiếng Thụy Điển (nhưng không phải Å). – lindhe

+0

Nó hoạt động hoàn hảo với bàn phím tiếng Bồ Đào Nha – Nelio

1

Tôi đang duy trì một plugin đơn giản hóa việc chèn các ký tự giống như khung hình cân bằng và thậm chí hỗ trợ xung quanh các từ/dòng/lựa chọn.

https://github.com/LucHermitte/lh-brackets/#the-bracketing-subsystem

Các bindings mặc định cho C & C++ được mô tả trong lh-cpp page.

+0

đây là một trong những tốt, mặc dù phải mất một chút để có được thông qua các tài liệu kể từ khi im sử dụng rất nhiều thứ lh và một chút áp đảo của nó. Tôi vẫn havent khá figured ra lý do tại sao nó tạo ra thêm artifacts sau khi chèn nhưng chỉ trong các tập tin ngôn ngữ .vim. – osirisgothra

+0

Công cụ trích xuất chắc chắn là trình giữ chỗ. Bạn có thể chuyển đến trình giữ chỗ tiếp theo bằng '' nếu bạn đang sử dụng gvim, '' (IIRC) với vim. Trong C & C++, ';' sẽ cố gắng đóng tất cả các trình giữ chỗ sau con trỏ khi nó được theo sau bằng cách đóng dấu ngoặc đơn và đóng '' '. Bây giờ, nếu bạn chỉ có phần giữ chỗ trong tệp .vim, chứ không phải trong các tệp khác, chúng tôi sẽ phải điều tra thêm. Chúng tôi cố gắng làm điều đó vào ngày mai bằng email hoặc thông qua trình theo dõi trên mã google. –

3

Đối với những người trong chúng ta muốn đi đồng bằng vim cách:

ino " ""<left> 
ino ' ''<left> 
ino (()<left> 
ino [ []<left> 
ino { {}<left> 
ino {<CR> {<CR>}<ESC>O 

autocomplete trong chế độ insert này. Giữ trong vimrc để tránh gõ nó mỗi lần và khi chúng ta không muốn lập bản đồ, chúng ta cần phải thoát khỏi nó bằng cách sử ctrl - v trước khi gõ char ánh xạ của ({, vv