2015-05-20 2 views
2

Я новичок в vimscrip. Я экспериментирую с некоторым кодом в .vimrc, чтобы настроить мой текстовый редактор vim.Vimscript imap ctrl ошибка

Вот весь мой код:

map m dd 
vmap a Gy 
imap <c-i> #include 
iabbrev LOL Mark was here 
autocmd VimEnter * echo "Welcome to vim :)" 

if strftime("%H") < 12 
    set background=light 
else 
    set background=dark 
endif 

Все работает отлично за исключением imap <c-i> #include.

Если я нахожу CTRL+i в режиме вставки, он пишет #include как должен.

Однако, если я нажимаю TAB, он также пишет #include, когда я вхожу в режим вставки.

Я не понимаю, почему это происходит. Кто-нибудь советует? Спасибо

+3

'' и '' неотличимы друг от друга. Вам нужно выбрать другой ярлык. – romainl

+0

Является ли '' конкретно неотличимым от '' или я могу сделать' '(например, int' ctrl + m')? – mas4

+0

'' неотличим от ''. Вы должны попробовать '' mappings: ': help mapleader'. – romainl

ответ

3

Это не ошибка, это несчастливое ограничение дизайна.

Из-за того, что ввод с клавиатуры осуществляется внутренне, к сожалению, сегодня это вообще невозможно, даже в GVIM. Некоторые комбинации клавиш, как Ctrl + неалфавитный не могут быть отображены, и Ctrl + письмо против Ctrl +сдвиг + письмо не может отличить. (Если ваш терминал не отправляет отдельный код termcap, который больше всего этого не делает.) В режиме ввода или командной строки попробуйте ввести комбинацию клавиш. Если ничего не происходит/не вставлено, вы не можете использовать эту комбинацию клавиш. Это также относится и к <Tab>/<C-I>, <CR>/<C-M>/<Esc>/<C-[> и т.д. (только исключение составляет <BS>/<C-H>.) Это известная точка боли, и предметом различных дискуссий по vim_dev и канала #vim IRC.

Некоторые люди (прежде всего Пол ЛевНерд Эванс) хотят исправить это (даже для консоли Vim в терминалах, которые поддерживают это), и предложили различные предложения, ср. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

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

Смежные вопросы