有没有办法用^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 "