Почему в vim не работает "map! <C-q>: q <CR>"?

Я ввожу :map! <C-q> :q <CR> в режиме командной строки, затем вернусь в нормальный режим и нажимаю ctrl-q, но vim не уходит. Почему?

Ответ 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, поскольку он заставляет эти контрольные последовательности достигать приложения.