Вы можете определить последовательность символов, выдаваемую клавишей, нажав Ctrl - v в командной строке, а затем нажав интересующую вас клавишу. В моей системе для F12 , я получаю ^[[24~
.^[
представляет Esc .Разные типы терминалов или эмуляторов терминалов могут выдавать разные коды для одного и того же ключа.
В приглашении Bash вы можете ввести такую команду, чтобы включить макрос ключа, чтобы вы могли опробовать его.
bind '"\e[24~":"foobar"'
Теперь, когда вы нажмете F12 , вы получите «foobar» в командной строке, готовый для дальнейшего редактирования.Если вы хотите, чтобы нажатие клавиши сразу же вводило команду, вы можете добавить новую строку:
bind '"\e[24~":"pwd\n"'
Теперь, когда вы нажимаете F12 , вы увидите текущий каталог без необходимости нажимать Введите .Что если вы уже набрали что-то в строке и используете это, которое автоматически выполняется?Это может стать грязным.Однако вы можете очистить строку как часть вашего макроса:
bind '"\e[24~":"\C-k \C-upwd\n"'
Пробел гарантирует, что Ctrl - u есть что удалить, чтобы сохранитьзвонок от звонка.
После того как макрос работает так, как вы хотите, вы можете сделать его постоянным, добавив его в файл ~/.inputrc
.Нет необходимости в команде bind
или внешнем наборе одинарных кавычек:
"\e[24~":"\C-k \C-upwd\n"
Редактировать:
Вы также можете создать привязку ключа, которая будет выполнятьчто-то, не мешая текущей командной строке.
bind -x '"\eW":"who"'
Затем, когда вы набираете команду, например, для которой требуется имя пользователя, и вам необходимо знать имена пользователей, которые вошли в систему, вы можете нажать Alt - Shift - W и вывод who
будут отображены, и приглашение будет повторно выдано с вашей частичной командой без изменений и курсором вта же позиция в строке.
К сожалению, это не работает должным образом для таких клавиш, как F12 , которые выводят более двух символов.В некоторых случаях это можно обойти.
Командой (в данном случае who
) может быть любой исполняемый файл - программа, скрипт или функция.