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

Если Вы - вид парня, которому нравится делить Ваш экран в инкременты как полный экран и половина экрана с помощью сочетаний клавиш, Вы могли бы рассмотреть использование другого менеджера окон полностью. Я не думаю, что существует любая причина, необходимо остаться с целой сценой Gnome/Metacity/Compiz.

Существует множество Менеджеров окон, доступных для Linux, которые имеют различные основные положения о том, как они обрабатывают окна. Лично я продаюсь при использовании платформы или мозаичном размещении разметок окна, а не традиционной плавающей модели. Существует та поддержка нескольких WM режимы соединения также. Я использую awesome и любовь, насколько гибкий это особенно с тем, чтобы быть scriptable и это обрабатывает нескольких мониторов. Существуют подобные такой как dwm и xmonad также.

Я думаю, что сумма экрана располагает их с интервалами, WM's обеспечивает, и время, они сохраняют Вас играющий с Вашими окнами, определенно стоит усилия установить их до Вашей симпатии.

3
13.03.2011, 15:58
1 ответ

Это - на самом деле Ваш терминал, делающий что-то странное, не Vim. Терминалы имеют два набора управляющих последовательностей, связанных с клавишами управления курсором по историческим причинам: один для полноэкранных приложений, часто называемых “режим клавиш управления курсором приложения”, и один для read-eval-print приложений (например, оболочки).

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

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

  • Настройте свой терминал, чтобы не иметь значение между этими двумя режимами. Как сделать, это совершенно зависит от Вашего эмулятора терминала.
  • Живой с ним. Так как любое данное приложение всегда устанавливает терминал в том же режиме, просто настройте его привязки клавиш согласно режиму, который это использует.
8
27.01.2020, 21:11
  • 1
    Хорошее объяснение. Я просто добавил бы некоторый практический пример: cat и нажмите клавиши со стрелками по сравнению с tput smkx; cat; tput rmkx и нажмите клавиши со стрелками. –  ninjalj 13.03.2011, 22:48

Теги

Похожие вопросы