在bash或zsh </c-a>中别名= <c-a>“sudo”

时间:2014-02-27 17:40:21

标签: linux bash unix alias zsh

有没有办法用@ AN,^ E等对字符串进行别名?或通过键盘快捷键这样的东西?

3 个答案:

答案 0 :(得分:1)

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

这不是alias,但它可能会引导您达到您想要的效果。

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

答案 1 :(得分:1)

在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 "\e\e" sudo-command-line

答案 2 :(得分:0)

对于zsh使用bindkey -s

bindkey -s "^A" "sudo "