什么是命令行上的“execute:”,以及如何避免它?

joh*_*ser 2 terminal zsh iterm2 macos

因此,我在 mac OSX 上使用 iTerm 2,并运行 zsh 以防万一相关。

我一定是不小心点击了某些东西,因为出现了这个对话框,而且我似乎无法忽略它:

在此输入图像描述

我输入的所有内容都会显示在 旁边execute:。我以前从未见过这种情况,不得不^C摆脱它。

有人知道它是什么/我点击了什么让它出现吗?

Ada*_*hon 5

execute-named-cmd “execute:”是zlezsh 行编辑器)小部件的提示符,它允许您通过输入其名称来运行任何其他zle小部件(它甚至具有制表符补全功能)。

默认情况下,在emacs模式下绑定到ESC-x(即Alt+xEsc, x),在vicmd模式下绑定到(通常通过在viins模式下输入或在emacs模式下输入+ , +来实现)。:EscCtrlxCtrlv

要删除两个默认绑定,请运行

bindkey -e -r '^[x'
bindkey -a -r ':'
Run Code Online (Sandbox Code Playgroud)

第一个用于emacs模式,第二个用于vicmd

为了使其永久化,您可以将其放入您的~/.zshrc. 如果您的配置中有对bindkey -eor的任何调用bindkey -v(没有任何进一步的参数,分别设置emacsviins模式的默认绑定),则需要将上述命令放在该事件之后。