它不是必不可少的,但它让我有点烦恼, 这是我的.zshrc
中的片段一个名为add_sudo的函数/小部件,它将在行的开头,在那里写sudo然后应该在行的末尾。
它绑定到ctrl + f
但它不会在行尾,它会忽略最后一个命令,并在写完sudo之后就坐在那里。
add_sudo() {
zle beginning-of-line;
zle -U "sudo ";
zle end-of-line;
}
zle -N add_sudo
bindkey "^f" add_sudo
对此有何解决方案?
答案 0 :(得分:5)
我可以回答这个问题!我刚刚加入,很高兴能帮助.....我读错了这个问题,但现在我在这里赎回自己,在@ 4ae1e1的帮助下,所有归功于他提到使用BUFFER =和CURSOR = < / p>
add_sudo (){
prefix="sudo"
BUFFER="$prefix $BUFFER"
CURSOR=$(($CURSOR + $#prefix + 1))
}
zle -N add_sudo
bindkey "^f" add_sudo
你想要什么,现在我也可以在每次忘记sudo之后使用它!
EDITx2
值得注意的是,这实际上将光标放回原先的位置,我的首选用途。正如4aelel所说,你可以使用CURSOR + = 5将它放在行尾。
同样值得注意的是,我再次意识到我真的没有完成这个问题,因为它是如何用zsh和zli来完成的,而不是如何做到这一点。如果我遇到一个答案,我会附加两个解决方案。我是zli的新手,它的细微差别,最近才转向zsh。