Trong vim, làm cách nào tôi có thể ánh xạ lại <tab> mà không cần ánh xạ lại <Ctrl + i>?


14

Tôi thích sử dụng tab để chuyển giữa các cửa sổ tách, vì vậy tôi có map <tab> <C-W><C-W>trong .vimrc của mình. Tuy nhiên, tôi nhận thấy rằng điều này làm cho nó để Ctrl + Tôi không hoạt động như Ctrl + I nữa mà là Ctrl + W, Ctrl + W. Làm thế nào tôi có thể sắp xếp lại <tab>nhưng không <C-i>?

Câu trả lời:


10

Do cách xử lý đầu vào bàn phím được xử lý bên trong, điều này không may thường không thể thực hiện được ngay hôm nay, ngay cả trong GVIM. Một số tổ hợp phím, như Ctrl+ không phải chữ cái không thể được ánh xạ và Ctrl+ chữ cái so với Ctrl+ Shift+ chữ cái không thể được phân biệt. (Trừ khi thiết bị đầu cuối của bạn gửi một mã termcap riêng biệt cho nó, hầu hết là không.) Trong chế độ chèn hoặc dòng lệnh, hãy thử nhập tổ hợp phím. Nếu không có gì xảy ra / được chèn, bạn không thể sử dụng tổ hợp phím đó. Điều này cũng áp dụng cho <Tab>/ <C-I>, <CR>/ <C-M>/ <Esc>/ <C-[>v.v. (Chỉ có ngoại lệ là <BS>/ <C-H>.) Đây là một điểm đau đã biết và là chủ đề của các cuộc thảo luận khác nhau trên vim_dev và kênh #vim IRC.

Một số người (trước hết là Paul LeoNerd Evans) muốn khắc phục điều đó (ngay cả đối với bảng điều khiển Vim trong các thiết bị đầu cuối hỗ trợ này), và đã đưa ra nhiều đề xuất, cp. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

Nhưng cho đến ngày hôm nay, vẫn chưa có bản vá hay tình nguyện viên nào được đưa ra, mặc dù nhiều người đã bày tỏ mong muốn có được điều này trong phiên bản chính Vim 8 trong tương lai.


1
vấn đề ánh xạ / nhận dạng mã khóa này đã được giải quyết trong Vim 8, tính đến thời điểm hiện tại (năm 2017)? Tôi thấy tôi vẫn có thể sao chép ví dụ của Jon trên Vim 8.0 của tôi
llinfeng

@llinfeng: Không, tiếc là không. Bram hiện đang làm việc để tích hợp một thiết bị đầu cuối vào Vim; điều này dường như sử dụng một thư viện được sản xuất bởi Paul Evans, vì vậy có lẽ điều này cuối cùng cũng sẽ dẫn đến một sự cải tiến về các phím được xử lý. (Nhưng đây chỉ là suy đoán thuần túy vào thời điểm này.)
Ingo Karkat

0

Không phải tất cả các phím tắt đều có thể có trong Vim, đặc biệt là nếu nó nằm dưới một thiết bị đầu cuối. Tôi không khuyên bạn nên sử dụng phím tắt cho mục đích đó. Nhưng một giải pháp thay thế có thể là như sau:

" Note: Allows faster switching between windows with "Ctrl+w"! By Questor
nnoremap <silent> <C-w> <C-w><C-w>
inoremap <silent> <C-w> <Esc><C-w><C-w>
vnoremap <silent> <C-w> <Esc><C-w><C-w>

Xem ví dụ về việc sử dụng trong https://github.com/eduardolucioac/groovim/blob/master/.vimrc

[]'S

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.