Як vim, як я можу перевстановити <tab>, не змінюючи також <Ctrl + i>?


14

Мені подобається використовувати вкладку для переходу між розділеними вікнами, тому у мене є map <tab> <C-W><C-W>.vimrc. Але я помітив, що це робить це так, що Ctrl + I більше не веде себе як Ctrl + I, а як Ctrl + W, Ctrl + W. Як я можу зробити перезапис просто, <tab>але ні <C-i>?

Відповіді:


10

Через те, що вхід з клавіатури обробляється внутрішньо, сьогодні, на жаль, це взагалі неможливо, навіть у GVIM. Деякі комбінації клавіш, наприклад Ctrl+ не алфавітне, неможливо відобразити, а Ctrl+ літеру проти Ctrl+ Shift+ літеру не можна відрізнити. (Якщо ваш термінал не надсилає для нього чіткий код термінальної капи , який більшість не робить.) У режимі вставки або командного рядка спробуйте ввести комбінацію клавіш. Якщо нічого не відбувається / вставлено, ви не можете використовувати цю комбінацію клавіш. Це стосується також <Tab>/ <C-I>, <CR>/ <C-M>/ <Esc>/ <C-[>тощо. (Єдиним винятком є <BS>/ <C-H>.) Це відома больова точка і тема різних дискусій на vim_dev та #vim IRC-канал #vim.

Деякі люди (в першу чергу Пол Леонерд Еванс) хочуть це виправити (навіть для консолі Vim в терміналах, які це підтримують), і вони подали різні пропозиції, пор. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

Але на сьогоднішній день жодних патчів чи добровольців ще не вийшло, хоча багато хто висловив бажання мати це у майбутньому великому випуску Vim 8.


1
чи була вирішена ця проблема зі зіставленням / розпізнаванням кодових кодів у Vim 8 станом на зараз (рік 2017)? Я вважаю, що все ще можу відтворити приклад Йона на моєму Vim 8.0
llinfeng

@llinfeng: Ні, на жаль, ні. В даний час Bram працює над інтеграцією терміналу у Vim; Для цього, здається, використовується бібліотека, створена Полом Евансом, тому, можливо, це врешті-решт призведе до вдосконалення і керованих клавіш. (Але це чисті спекуляції на даний момент.)
Інго Каркат,

0

Не всі ярлики можливі у Vim, особливо якщо він знаходиться під терміналом. Я не рекомендую використовувати ярлик вкладки для цієї мети. Але альтернативним рішенням може бути наступне:

" 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>

Дивіться приклад використання на https://github.com/eduardolucioac/groovim/blob/master/.vimrc

[]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.