Как я могу заставить Linux интерпретировать символы клавиатуры правильно?

Я получаю доступ к оболочке сервера Linux через шпаклевку, но многие ключи, которые я использую, не переводят через,
вверх, вниз, влево и вправо все рассматриваются как ^ [[A, ^ [[B, ^ [[D и ^ [[C;
Но так Кубок, C-down, Расселина и C-право.
И войдите, рассматривается как C-j (которые спускаются к следующей строке),
и клавиша Backspace рассматривается как C-h, который является, назад удаляют.

Как я могу остановить эти ключи, переводимые в другие ключи (таким образом, я могу, например, настроить C-h и возвратиться для выполнения двух различных функций), и что делает этот перевод (Шпаклевка, ядро, оболочка)?

2
задан 18.02.2010, 02:04

4 ответа

Попытайтесь измениться $TERM к "xterm".

Попытайтесь установить настройки клавиатуры PuTTY на "rxvt", "Esc [n ~" и "Управление-?".

Какую оболочку Вы используете? Если это - Bash затем существуют некоторые настройки, в которых Вы могли бы хотеть установить ~/.inputrc.

Интерпретация нажатия клавиши затронута комбинацией:

  • PuTTY - или другой эмулятор терминала
  • ОС Вы работаете на эмуляторе терминала
  • /etc/X11/xorg.conf - если Вы используете X-оконную систему.
  • Bash/Readline через /etc/inputrc и ~/.inputrc - или подобные функции в других оболочках
  • terminfo или в некоторых случаях termcap
  • $TERM переменная
  • Вероятно, что-то я забываю
4
ответ дан 08.12.2019, 04:52

Хорошо, Таким образом, вот решение, которое я предложил - я угробил PuttyCyg и начал использовать MinTTY., это, кажется, проводит намного больше моих фактических ключей к серверу.:>

Уточнить -
После наблюдения этого сообщения в блоге, изображенного там, была хорошая Шпаклевка изменения (Cyg), возможно, на самом деле должен был бы быть исправлен, чтобы сделать то, что я хочу, таким образом, я экспериментировал с другими эмуляторами терминала, которые могли взаимодействовать через интерфейс с cygwin. MinTTY показал различные коды, когда я использовал C-v для наблюдения что сервер что наблюдение, включая:
Различные коды для C-(клавиша со стрелкой), чем (клавиша со стрелкой),
C-M для возврата, C-^ для C-возврата,
также различные коды для meta'd вкладки и клавиши Backspace;
То, что это означает, является этими ключами, теперь регистрируются как отличающийся, так может настроить emacs для использования их для разных вещей, например, C-M может быть 'новой строкой и отступом', в то время как C-^ является 'cua-set-rectangle-mode'. Я пытался зафиксировать свой SSHed emacs сессия целую вечность...
Для большего количества детали о emacs и кодов клавиши в целом, я также нашел это

3
ответ дан 08.12.2019, 04:52

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

Вы выполняете PuTTYTel в Windows? Затем кто-то еще должен будет помочь Вам выяснить, как заставить PuTTYTel обнаруживать различие между и управлять и отправлять различные данные за каждым. Я только знаю *, отклоняют.

Какой ключ отправляется обратной почтой, и удаляют, и так далее определяются, каким ТЕРМИНОМ Ваш эмулятор терминала установлен использовать. Необходимо смочь использовать что-либо, для чего у Вас есть terminfo файл в другом конце. На моей машине terminfo файл для vt100 говорит, что возврат должен быть ^M, тем не менее, не ^J. (Клавиша Backspace в vt100 является ^H.), Таким образом, я не знаю, насколько Вы собираетесь быть способными полагаться на этот эмулятор терминала...

Клавишей Backspace является также ^H в xterm. В других terminfo определениях это - ^?, это - 0x7f. Например, это правда на "Linux" и "rxvt-unicode" terminfo определения.

2
ответ дан 08.12.2019, 04:52

Нажатия клавиш, которые Вы хотите, не являются представимыми на vt100. Они просто не могут существовать с тем терминальным типом. Попытайтесь установить эмуляцию на xterm или rxvt (при использовании эмулятора терминала, который может сделать xterm эмуляцию, это может даже совместно использовать информацию о мыши с приложением на другом конце).

0
ответ дан 08.12.2019, 04:52

Теги

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