Я ввожу :map! <C-q> :q <CR>
в режиме командной строки, затем вернусь в нормальный режим и нажимаю ctrl-q, но vim не уходит. Почему?
Почему в vim не работает "map! <C-q>: q <CR>"?
Ответ 1
Почему кто-то захочет добавить еще один способ выйти из Vim в множество, уже доступное, вне меня. Однако...
В Fedora 15, Ctrl - Q, вероятно, будет захвачен вашим терминалом как XON (resume) и, следовательно, не доходит до Vim, чтобы выйти из приложения.
Вы можете проверить, есть ли ошибка в вашем сопоставлении или столкновении:
:verbose map! <C-Q>
:map!
предназначен для указания сопоставлений в insert
и command-line
.
normal-mode
сопоставления указаны (обычно) так:
:nmap <C-Q> :q<CR>
Ответ 2
Как предположил Джонсивб, Ctrl - Q не достигает Vim в первую очередь. Это относится и к популярному Ctrl - S. Оба могут быть исправлены добавлением
silent !stty -ixon > /dev/null 2>/dev/null
к вашему .vimrc
, поскольку он заставляет эти контрольные последовательности достигать приложения.