别名 anything=<C-a> 在 bash 或 zsh 中"sudo "



有没有办法用^A,^E等为字符串别名?或者通过键盘快捷键进行类似的事情?

你可以使用 GNU Readline 来做你想做的事情。在 Bash 中,您可以使用内置的bind来显示(bind -P)或修改 readline 键绑定。例如,bind '"e[15~":"topC-m"'会将 F5 映射到"top"。您还可以使用 inputrc 配置文件来存储这些设置。

这不是别名,但它可能会引导您找到您想要的内容。

zsh,事情会略有不同,因为 zsh 不使用 readline。相反,它使用自己更强大的zle:命令和语法可能略有不同,但结果应该大致相同。

在 zsh 中,我使用以下配置使两个 Esc 执行类似于您描述的操作:

sudo-command-line() {
    [[ -z $BUFFER ]] && zle up-history
    [[ $BUFFER != sudo * ]] && BUFFER="sudo ${BUFFER% }"
    zle end-of-line
}
zle -N sudo-command-line
bindkey "ee" sudo-command-line

对于 zsh,请使用 bindkey -s

bindkey -s "^A" "sudo "

最新更新