Если да:
bindkey | grep -F '^[x'
или просто:
bindkey '^[x'
или если вы сомневаетесь, как выразить Alt+x:
bindkey | grep -w x
Вот увидишь:
"^[x" execute-named-cmd
Это имя виджета, привязанного к ESC x, и большинство терминалов отправляют последовательность символов ESC x при нажатии Alt+x
info zsh execute-named-cmd
Сообщит вам, что делает этот виджет (вам может потребоваться установить пакет zsh-doc
на некоторых системах ).
Как следует из названия, он запрашивает команду для выполнения. Команды здесь — виджеты zsh, команды редактора. Это эквивалент emacs
' Meta -x , за исключением того, что это команды редактора zsh вместо команды emacs
(команда называется execute-extended-command
вemacs
)
Например, если в этом приглашении вы наберете backward-delete-char
и нажмете Return , будет вызван тот виджет, который по умолчанию привязан к Backspace . Вы можете сделать то же самое в emacs
.
Если вместо этого вы наберетеdesc
Вкладка(Вкладка для завершения в describe-key-briefly
, виджет, не привязанный к какой-либо клавише по умолчанию, а также находящийся в emacs
), и нажмите Возврат , вы увидите другую подсказку:
$
Describe key briefly: _
Где вы можете нажать, скажем, Alt+x , чтобы увидеть, что это должно сделать. Тогда вы получите:
"^[x" is execute-named-cmd
Если вы сделаете то же самое в emacs
, вы увидите:
M-x runs the command execute-extended-command
Чтобы увидеть список виджетов, запустите zle -al
, zle -l
для не -встроенных, bindkey
для списка привязок клавиш.
Вы можете связать Alt+x с чем-то еще с помощью
bindkey "^[x" some-widget
Есть несколько способов решить эту проблему.
Наиболее привычным способом, вероятно, было бы отключить новую схему именования сетевых интерфейсов, используя параметр загрузки net.ifnames=0
, или переопределив /lib/systemd/network/99-default.link
на ln -s /dev/null /etc/systemd/network/99-default.link
, или замаскировав файл правил udev, который фактически реализует новый -имена стилей с ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
... см. вики Debian для получения дополнительной информации о различных способах возврата к классической схеме именования. Затем вы можете переписать свой /etc/network/interfaces
так, чтобы он просто использовал eth0
.
Вероятно, самым гибким способом было бы отказаться от использования статического /etc/network/interfaces
и переключиться на NetworkManager. По умолчанию он автоматически использует DHCP на сетевом интерфейсе с активной ссылкой, если нет дальнейшей настройки. Это будет автоматически обрабатывать даже случаи, когда у вас есть несколько сетевых карт, но фактически подключена только одна (, не обязательно первая ).
Или вы можете поступить по-своему, написав собственный сценарий, который будет читать ip link show
вывод (или ссылки в/sys/class/network
)и переписывать/etc/network/interfaces
(или любой другой файл конфигурации вашей сети )в подходить. Затем вы можете добавить скрипт как службу systemd с Wants=network-pre.target
, Before=network-pre.target
, After=module-init-tools.service
и, возможно, DefaultDependencies=no
. Это должно позволить запустить сценарий как часть ранней настройки системы -после загрузки всех модулей, но до начала настройки сети.