它不是必不可少的,但是让我有些烦恼,
这是我的.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。

09-04 15:20