2012-11-24 36 views
7

Hoàn thành tab bằng menu bật lên trong vim hoạt động khá tốt với cấu hình phù hợp. http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDEMenu Popup tùy chỉnh trong VIM

Tôi có một bộ sưu tập nhỏ trình tạo mã và chương trình thao tác mã mà tôi sử dụng trong vim. Thủ tục là:

1. initiate visual mode 
2. highlight text 
3. :'<,'>!hashify 

Tôi muốn khai thác menu bật lên vim để cung cấp tuyển chọn các hành động.

Thủ tục mới sẽ là:

1. initiate visual mode 
2. highlight text 
3. <Tab> -- select transform option from menu 

Có một giao diện vimscript mà có thể được sử dụng cho việc này?

Trả lời

2

Cửa sổ bật lên hoàn thành chế độ chèn có thể được sử dụng để chèn lựa chọn đoạn văn bản. Có hai cách để triển khai, xem :help complete-functions:help complete(). Nếu trình tạo mã của bạn trả về các đoạn văn bản một dòng (và không quá dài) để chèn, bạn có thể gọi trình tạo thông qua system(...) và sau đó nạp các giá trị trả về cho hàm hoàn thành. Mặt khác, nếu các lựa chọn trình đơn không tương ứng trực tiếp với văn bản được chèn, nhưng là các lựa chọn hoặc hành động chiến thuật, hầu hết các trình cắm đều có menu chọn như thế này, được tạo kiểu như menu tích hợp (ví dụ: :ilist):

:echohl Title 
:echo 'Code fragments:' 
:echohl None 
:echo '1. foo' 
:echo '2. bar' 
:let choice = nr2str(getchar()) 
:if choice == 1 ... 

Sau đó, chèn văn bản tương ứng với lựa chọn qua :normal! iText hoặc setline().

Khi bạn cần hoàn thành chế độ trực quan, trước tiên bạn có thể chụp được văn bản đã chọn bằng cách bắt đầu ánh xạ với y.

+0

Dường như câu trả lời cho câu hỏi của tôi là 'có'. Tôi sẽ làm một số nghiên cứu và thử nghiệm và xem những gì tôi có thể đưa ra. Cảm ơn. – ddoxey

Các vấn đề liên quan