Как привязать Ctrl + стрелки / backspace / del к командам Readline

Аналогичный подход заключается в использовании Xdummy, если xserver-xorg-video-dummy доступен в вашей изолированной системе. Он использует некоторые фиктивные драйверы и предоставляет X-сервер, который может работать без привилегий root. Вы можете найти некоторые объяснения и образец xorg.conf на веб-сайте xpra: https://xpra.org/trac/wiki/Xdummy . Требуется установить X, но не не нужен работающий X-сервер.

(Извините, у меня недостаточно репутации, чтобы опубликовать это в качестве комментария)

3
12.05.2017, 03:18
2 ответа

Что-то вроде этого:

"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[H": beginning-of-line
"\e[F": end-of-line
"\eOH": beginning-of-line
"\eOF": end-of-line
"\e[1~": beginning-of-line
"\e[4~": end-of-line

В зависимости от настроек терминала и от того, используете ли вы экран, xterm будет отправлять эти варианты для Home и End , в то время как клавиши модифицированного курсора Control отправляют согласованное значение. Вы можете изменить это (с xterm: другие терминалы, как правило, нет).

Control/Del и control/Backspace, вероятно, не будут работать, если только под Del вы не подразумеваете нижнюю левую клавишу на 6-клавишной клавиатуре редактирования. Для xterm это отправляет "\e[3;5~".

С помощью putty у вас мало вариантов для «стрелок ctrl», поскольку он использует модификатор управления для переключения между нормальным и приложением режимами клавиш курсора. То есть вы будете переключаться между "\e[C" (обычный) и "\eOC" (приложение). Кроме того, можно изменить начало/конец (на то, что разработчики шпатлевки назвали «rxvt»), чтобы получить «\e[H», упомянутый выше.

Дополнительная литература:

4
27.01.2020, 21:21

Функциональные клавиши и клавиши курсора отправляют escape-последовательность, которая начинается с символа ESC (escape ). Нажмите Ctrl + V , затем клавишу или сочетание клавиш. Это буквально вставляет символ ESC, за которым следуют остальные символы escape-последовательности.

Например, предположим, что вы нажимаете Ctrl + VCtrl + Влево , и он вставляет ^[O5D. ^[— escape-символ. Затем в .inputrcвы свяжете его с

"\eO5D": backward-word

Escape-последовательность для данного ключа зависит от терминала, поэтому вы можете в конечном итоге привязать более одной escape-последовательности к одной и той же функции, в зависимости от того, какие терминалы вы используете и как вы их настраиваете. Хорошая новость заключается в том, что по большому счету нет управляющих последовательностей, соответствующих разным клавишам на разных терминалах.

Многие терминалы не отправляют отдельные escape-последовательности для всех клавишных сочетаний. Например, вы можете обнаружить, что Ctrl + Влево и Ctrl + Shift + Влево отправляют одну и ту же управляющую последовательность.. Может быть, а может и не быть способа исправить это в конфигурации терминала;см. этот пост для обсуждения, ориентированного на Emacs -. См. также Как сделать исчерпывающий набор возможностей для определения "командных символов" экрана GNU -? и Как работает ввод с клавиатуры и вывод текста? и Как сделать исчерпывающий набор возможностей для определения "командных символов" экрана GNU -? для получения дополнительной информации по теме.

1
27.01.2020, 21:21

Теги

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