Клавиша Home, не работающая в терминале

Вот хороший источник выбранных dev статей, Литературного Списка Какао:

http://osx.hyperjeff.net/Reference/CocoaArticles

(Это может быть особенно полезно, если однажды Вы хотите использовать Mac OS X определенные положительные герои.)

13
09.09.2011, 02:08
4 ответа

Я сейчас на Fedora, но я предлагаю вам внимательно прочитать вики Archlinux , все это: Home и End ключи не рабочий .

Что я сделал, чтобы это исправить:

  1. Нажмите Ctrl-V Home, будет напечатана экранированная последовательность для клавиши Home. Это не \ e [4 ~ и \ e [1 ~ ], как я ожидал, глядя на / etc / inputrc . Это были [H и [F

  2. Извлечь информацию о терминале infocmp $ TERM> terminfo.src

  3. Откройте этот файл для редактирования, например vim terminfo.src , найдите khome и kend , он назначен чему-то, скажем khome = \ E [1 ~ и kend = \ E [4 ~ , который в этом случае не работает. удалите его и замените последовательностью, которую вы нашли на шаге № 1, поэтому для меня после редактирования это было: khome = \ E [H и kend = \ E [F ].

  4. Если вы хотите перестраховаться, убедитесь, что [F и [H (или любая другая последовательность, которую вы только что использовали) не назначены на что-то еще, иначе все будет испорчено!

  5. запустить tic terminfo.src , который создает каталог ~ / .terminfo .

  6. Вверху .zshrc перед любыми другими командами поместите: export TERMINFO = ~ / .terminfo

Откройте новое окно терминала, и все будет в порядке, домой и в конец должен работать сейчас.

P.S: Теоретически метод bindkey должен работать и проще, но для меня это не так.

3
27.01.2020, 19:53

Escape-последовательности, отправленные функциональными клавишами и клавишами управления курсором, состоят из символа ESC, сопровождаемого печатаемыми символами. Нажмите Ctrl+V затем Домой. Это вставит escape-последовательность буквально. Затем добавьте a bindkey инструкция к Вашему ~/.zshrc.

Инструкция, вероятно, будет (примечание O, нет 0):

bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line
6
27.01.2020, 19:53
  • 1
    ничто не печатается, когда я нажимаю Ctrl затем Домой. Ничего не происходит. Испытанное изменение 0 к O также. –  balki 09.09.2011, 17:07
  • 2
    @balki Это - Ctrl+V, не Ctrl. Я просто понял, что в моем ответе была проблема форматирования. –  Gilles 'SO- stop being evil' 12.05.2017, 03:15
  • 3
    Спасибо! :) Я теперь привык к ctrl + a и ctrl +e и режим –  balki 12.05.2017, 03:27

Добавьте эти строки к /etc/zshrc и затем сделайте a source /etc/zshrc (взятый отсюда)

bindkey '\e[1~'   beginning-of-line  # Linux console
bindkey '\e[H'    beginning-of-line  # xterm
bindkey '\eOH'    beginning-of-line  # gnome-terminal
bindkey '\e[2~'   overwrite-mode     # Linux console, xterm, gnome-terminal
bindkey '\e[3~'   delete-char        # Linux console, xterm, gnome-terminal
bindkey '\e[4~'   end-of-line        # Linux console
bindkey '\e[F'    end-of-line        # xterm
bindkey '\eOF'    end-of-line        # gnome-terminal
2
27.01.2020, 19:53

Я обнаружил, что должен был попасть в CTRL-v , отпусти, затем клавиша Home или End, чтобы получить последовательности ^[[H и ^[[F для Home и End, соответственно. Добавление следующих строк в файл .zshrc решило для меня проблему:

bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
5
27.01.2020, 19:53

Теги

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