它不是必不可少的,但是让我有些烦恼,
这是我的.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
有什么解决办法吗?
最佳答案
我可以回答这个!我刚刚加入,很高兴为您提供帮助.....我读错了问题,但是现在我在这里通过@ 4ae1e1赎回自己,所有人都归功于他提到使用BUFFER =和CURSOR =
add_sudo (){
prefix="sudo"
BUFFER="$prefix $BUFFER"
CURSOR=$(($CURSOR + $#prefix + 1))
}
zle -N add_sudo
bindkey "^f" add_sudo
随您便,现在我每次忘记sudo后也可以使用它!
编辑x2
值得注意的是,这实际上将光标移回了以前的位置,这是我的首选用法。如4aelel所述,您可以使用CURSOR + = 5将其放在行尾。
同样要注意的是,我再次意识到我确实没有解决这个问题,因为这是如何使用zsh和zli来实现,而不是如何去实现。如果我遇到一个答案,我将同时附上这两种解决方案。我是zli的新手,这是细微差别,最近才转移到zsh。