Подтвердить что ты не робот

Gnu screen - изменение ключа команды ESC по умолчанию для ALT-X?

На экране GNU я хочу изменить привязку команды по умолчанию к Alt-s (путем настройки .screenrc) вместо значения по умолчанию Ca, причина в том, что я использую emacs, поэтому экран GNU связывает ключ Ca, отправляя "Ca" на emacs становится утомительным (как сказал Нилс, чтобы отправить "Ca" , я должен набрать "Ca a" ), а также "Ca" в оболочке bash, и я мог бы сменить escape на C-, но некоторые из них уже сопоставленные в emacs, а другие комбинации не так просты, как ALT-s. Если кто-то уже сделал сопоставление ключей ALT, пожалуйста, дайте мне знать.

4b9b3361

Ответ 1

Из моего чтения man screen он кажется единственным метасимволом, который screen может использовать для привязки команды: CTRL:

   escape xy

   Set  the  command character to x and the character generating a literal
   command character (by triggering the "meta" command) to y (similar to
   the -e option).  Each argument is either a single character, a two-character
   sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal
   number (specifying the ASCII code of the character),  or a backslash followed
   by a second character, such as "\^" or "\\".  The default is "^Aa".

Если есть какое-то сопоставление, которое вы не используете в emacs, даже если оно неудобно, например C-|, тогда вы можете использовать диспетчер ввода терминала для переназначения ALT-X на него, позволяя использовать ALT вместо этого. Это было бы немного хаки, хотя.

Ответ 2

Можно обойтись: escape-команды с использованием регистров и команды bindkey. Просто поместите это в .screenrc:

# reset escape key to the default
escape ^Aa

# auxiliary register
register S ^A

# Alt + x produces ^A and acts as an escape key
bindkey "^[x" process S

## Alt + space produces ^A and acts as an escape key
# bindkey "^[ " process S

См. http://adb.cba.pl/gnu-screen-tips-page-my.html#howto-alt-key-as-escape

Ответ 3

Экран не имеет сокращенного синтаксиса для привязок alt, но вы можете дать ему восьмеричный код напрямую. Например, на моей машине Alt-x имеет шестнадцатеричный код F8 или 370 восьмеричный, поэтому класть

escape\370x

в моем экране изменил код перехода на alt-X

Протестировано и работает с экраном 4.00.03 на Linux.

Возможно, вам придется сменить побег, так как я думаю, что это может зависеть от таких вещей, как ваш язык и набор кодов и т.д.: как я узнал, каков был мой код перехода, это набрать

$ echo -n ^QM-x | perl -ne 'printf "%lo\n", ord($_)'

^ Q - это команда цитирования-вставки для readline (она вставляет то, что вы набираете напрямую, не пытаясь ее интерпретировать), а M-x - буквальный Alt-X.

Ответ 4

Чтобы сделать Alt + X префикс по умолчанию для команд и свободный C-a, добавьте следующие строки в .screenrc:

escape ^||
bindkey "^[x" command

В качестве побочного эффекта C- | будет также префикс команды. Если вам нужны эти ключи, чтобы быть свободными, тогда исправьте "escape ^ ||", соответственно.

Ответ 5

Я тоже Emacs и пользователь экрана. Хотя я редко использую Emacs в терминале - и, как таковой, в сеансе экрана, я тоже не хотел отказываться от C-a для оболочки (которая использует привязки ключей Emacs). Мое решение состояло в том, чтобы использовать C-j в качестве префиксного ключа для экрана, который я был готов пожертвовать. В режимах программирования Emacs он привязан к (newline-and-indent), который я также привязал к RET, поэтому я действительно не пропущу его.

Кстати, я знаю, что это скорее совет, чем ответ, но я чувствовал, что это будет достаточно ценно для публикации.

Ответ 6

Не отвечает на ваш вопрос, но C-a a отправляет C-a в окно, не так ли?