Как зафиксировать Ctrl + стрелки в Vim?

Я использую следующие два большую часть времени.
Но обратите внимание, что они оба ищут стартовые символы.

  1. tcsh: введите несколько символов команды затем Esc+p, это покажет, что предыдущая команда, запускающаяся с того сочетания клавиш, нажимает его снова, это покажет другую команду.
  2. ksh: использовать fc -e - <SPACE> <first few char for your previous > это придет последним команда, соответствующая той последовательности.

Я не смог найти что-то как Ctrl+R в Bash для моего ksh и tcsh.

26
07.09.2010, 07:06
3 ответа

Выясните точно, какая escape-последовательность Ваш терминал посылает за Ctrl+arrow путем ввода Ctrl+V, Ctrl+arrow в режиме вставки: это вставит продвижение ESC символ (показанный как ^[ в энергии) буквально, сопровождаемый остальной частью escape-последовательности. Затем скажите энергию об этих escape-последовательностях с чем-то как

map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>

Я, кажется, вспоминаю, что Шпаклевка имеет настройку по умолчанию для режима Application Cursor Keys, это неудобно (я забываю, почему), Вы могли бы хотеть переключить эту установку сначала.

Обратите внимание, что, хотя escape-последовательности варьируются между терминалами, конфликты (т.е. escape-последовательность, которая соответствует различным ключам в различных терминалах) редки, таким образом, нет никакой конкретной потребности попытаться применить отображения только на конкретный терминальный тип.

27
27.01.2020, 19:40
  • 1
    Как я говорю то, какая escape-последовательность отправляется? –  Alex B 08.09.2010, 01:37
  • 2
    @Alex: я попытался разъяснить свое объяснение, жаловаться, не понимаете ли Вы все еще мое первое предложение. –  Gilles 'SO- stop being evil' 08.09.2010, 01:43
  • 3
    Можно также работать od -a или od -c если Вы роете восьмеричный и затем вводите рассматриваемые ключи. См. "добавленный" в моем ответе для примера. –  msw 08.09.2010, 03:14
  • 4
    Извините за возвращение к этому вопросу настолько поздно, но я выяснил, что PuTTY все еще отправляет клавиши управления курсором приложения на терминал, даже после того, как я выключаю его полностью. Я в замешательстве, что еще должно я настраивать, чтобы заставить его уйти. –  Alex B 19.01.2011, 01:25
  • 5
    @Alex: Вы не должны заставлять его уйти, можно сказать приложения о них (который я нашел, чтобы быть путем наименьшего сопротивления). Или можно заменить PuTTY одной из альтернатив такой как мятный плюс Cygwin ssh (но это добирается вне темы для этого сайта). UUID –  Gilles 'SO- stop being evil' 19.01.2011, 01:30

Ваш лучший выбор состоит в том, чтобы, вероятно, посмотреть на конфигурацию режима Application Cursor Keys PuTTY.

Последовательности по умолчанию отправляют ESC как префикс и [ сопровождаемый Append или Change или другие вещи, бросающие Вас в режим вставки.

добавленный, после Gilles

Немного более явная версия Escape ^V видна с передозировкой (1). Вот я вводящий ^Up, ^Down, ^Right, ^Left на моем терминале:

$ od -a
0000000 esc   [   1   ;   5   A esc   [   1   ;   5   B esc   [   1   ;
0000020   5   C esc   [   1   ;   5   D

Таким образом, мой терминал отправляет ^[[1;5A когда я нажимаю Ctrl +

7
27.01.2020, 19:40
  • 1
    Выключение режима Application Cursor Keys, кажется, не помогает. –  Alex B 08.09.2010, 01:37

Я нашел лучшее решение здесь: http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell

Просто вставьте эту строку Ваш .vimrc файл:

:set term=cons25

Обновление

Скопируйте этот файл в Ваш /home, переименование его .vimrc:

/usr/share/vim/vim_VERSION_/vimrc_example.vim
2
27.01.2020, 19:40
  • 1
    Это создает некоторое странное символьное поведение. –  Thibault 12.07.2017, 16:58

Теги

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