当我输入 时Alt-x
,execute:
会弹出:
~ %
execute: _
我可以继续输入(空格不起作用):
~ %
execute: what'sthis
Q1:这次促销有什么用?
Q2:如何将此快捷键修改为其他按键绑定?因为M-x
在emacs中相当有用,而且我经常在emacs中使用shell,所以两者冲突。
我谷歌了几个小时,但仍然没有答案(也许我的关键字不正确--谷歌:“zsh”+“excute:”,“谷歌:zsh键绑定bindkey
答案1
如果你这样做:
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 编辑器命令而不是command (该命令在 中emacs
调用)execute-extended-command
emacs
例如,如果在该提示下键入并按backward-delete-char
,Return它将调用默认绑定到 的小部件Backspace。您可以在 中执行完全相同的操作emacs
。
相反,如果您键入desc
Tab(Tab将其填写到describe-key-briefly
,默认情况下未绑定到任何键的小部件,也可以在 中找到emacs
) 并按Return,您将看到另一个提示:
$
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