Как можно связать ^ [или M- [ярлык для действия в nano?

Я работаю с CentOS 7, которая может иметь другую настройку. Однако для меня вызов getty управляется служебным файлом /usr/lib/systemd/system/getty@.service. (Символ @ служит для шаблонизации; он запускается как getty@tty1.service, а строка tty1 передается в файл и определяет, на каком TTY он запускается.) В этом файле есть строка, начинающаяся с ExecStart=, которая определяет командную строку. Здесь будут добавлены опции. (Лучше не редактировать файл под /usr напрямую, так как он может быть перезаписан при обновлении системы; сначала его следует скопировать куда-нибудь под /etc, возможно, под /etc/systemd/system, где он будет затенять файл, предоставленный производителем. )

Похоже, что то, что вы хотите получить при выключении/перезагрузке, лучше всего реализовать не путем изменения непосредственно процесса выключения/перезагрузки, а путем добавления действия в список действий по выключению службы, которые systemd будет автоматически выполнять при остановке или перезагрузке системы (или когда вы выключаете службу вручную с помощью systemctl). Быстрый способ сделать это - превратить сценарий в строку ExecStop команды системной службы; в зависимости от того, как все настроено, вы также можете создать пользовательский служебный файл, управляющий всем этим, и поместить ExecStop туда.

0
07.06.2018, 22:38
1 ответ

Вы не можете.

Терминалы отправляют символы, а не ключи. (См. Как работает ввод с клавиатуры и вывод текста? для более подробной информации. )Но не все клавиши имеют соответствующий символ. Когда вы нажимаете клавишу или аккорд, у которого нет соответствующего символа, терминал отправляет последовательность символов, представляющую его, или, в некоторых случаях, непечатаемый -управляющий символ). Эти последовательности всегда начинаются с определенного символа, который называется escape-символом .Этот символ также является тем, что посылает Ctrl + [ .

Таким образом, если бы вы могли связать^[(Ctrl + [ ), это сломало бы все клавиши, которые отправляют управляющие последовательности. Например, Up отправляет либо три символа (^[, [, A), либо три символа (^[, O, A), в зависимости от терминала. Если бы вы могли переназначить ^[, то клавиша Вверх выполнила бы действие ^[, а затем вставила бы [и A.

Alt +charотправляет escape-символ, за которым следует char . Таким образом, если вы переназначаете M-[, вы действительно перепривязываете две -последовательности символов (^[, [), что может привести к поломке некоторых курсорных и функциональных клавиш.

Nano технически допускает повторную привязку^[(начиная с версии 2.5.3 ), но это не имеет никакого эффекта, потому что когда он читает ^[, он классифицирует это как начало управляющей последовательности (Я упрощаю бит )и никогда не ищет привязку для ^[. Nano явно запрещает повторное связывание M-[.

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

0
28.01.2020, 04:20

Теги

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