Почему Vim ест Ctrl при использовании с Ctrl + v и как его исправить?

Я использую Vim /etc/zsh/zshrc чтобы добавить привязки клавиш для zsh потому что он не работает с inputrc . В моем терминале с tmux, когда я набираю Ctrl + v, тогда Ctrl + LeftArrow оболочка покажет ^[OD . Однако, когда я вхожу в режим вставки Vim, нажатие той же последовательности приведет к ^[[D

Я узнал, что ^[[D – это то, что создает оболочка, когда я набираю Ctrl + v, а затем LeftArrow . Я также изменил ^[[D на ^[OD в файле /etc/zsh/zshrc и работает как ожидалось (нажатие Ctrl + LeftArrow заставляет курсор перемещать слово). Вот строка, о которой я говорю:

 bindkey "^[OD" backward-word 

Я думаю, что что-то не так с Vim, потому что он использует Ctrl . Как это исправить?

One Solution collect form web for “Почему Vim ест Ctrl при использовании с Ctrl + v и как его исправить?”

На самом деле ваш терминал делает что-то странное, а не Vim. Терминалы имеют два набора управляющих последовательностей, связанных с клавишами курсора, по историческим причинам : один для полноэкранных приложений, часто называемый «режим клавиш курсора приложения», и один для приложений с проверкой подлинности (например, оболочек).

В прежние времена приложения чтения-eval-print не имели каких-либо функций редактирования линии, и предполагалось, что терминал или драйвер операционной системы OS в конечном итоге станут более сложными. Таким образом, терминал отправил управляющие последовательности, предназначенные для драйвера терминала. Так или иначе, драйверы терминалов Unix никогда не получали достойных функций редактирования линии; они были добавлены вместо приложений (например, через библиотеку readline).

Ваш терминал отправляет ␛OD для Ctrl + Left в режиме курсора в ␛[D и ␛[D в режиме клавиш курсора приложения. У вас есть два варианта:

  • Настройте свой терминал, чтобы не менять разницу между двумя режимами. Как это сделать полностью зависит от вашего эмулятора терминала.
  • Живи с этим. Поскольку любое заданное приложение всегда устанавливает терминал в том же режиме, просто настройте его привязки клавиш в соответствии с режимом, который он использует.
  • Не удается установить vim в Fedora 20
  • Выберите строку, не выбирая пробелы
  • Как «vi» осознает формат файлов конфигурации?
  • Выберите код в vim
  • Открыть файл с запущенным vim извне (в терминале)
  • Остановите vim от испортить мой отступ в комментариях
  • Используя VIM, как мне перенаправить направленные клавиши с правой руки на левую руку?
  • Могу ли я повторно войти в отключенную сессию?
  • Как установить vim в качестве редактора по умолчанию, когда я sudo?
  • Каковы плюсы и минусы Vim и Emacs?
  • Как программно изменить режим командного режима Vim?
  • Используйте регистр, чувствительный для ввода строчной строки с использованием смартфона
  • Linux и Unix - лучшая ОС в мире.