ZSH 和 ZLE,移动到行首,写入字符串,移动到行尾
ZSH and ZLE, move to the beginning-of-line, write string, move to the end
它不是必需的,但它让我有点烦恼,
这是我的 .zshrc
中的片段
a function/widget 调用 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 后使用它!
EDITx2
值得注意的是,这实际上将光标放回了之前的位置,这是我的首选用法。正如 4aelel 所述,您可以使用 CURSOR+=5 将其放在行尾。
同样值得注意的是,我意识到我确实没有完成这个问题,因为问题是如何使用 zsh 和 zli 来完成,而不是如何完成。如果我遇到一个答案,我会附加 solutions.I zli 的新手和它的细微差别,最近刚搬到 zsh。
它不是必需的,但它让我有点烦恼, 这是我的 .zshrc
中的片段a function/widget 调用 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 后使用它!
EDITx2
值得注意的是,这实际上将光标放回了之前的位置,这是我的首选用法。正如 4aelel 所述,您可以使用 CURSOR+=5 将其放在行尾。
同样值得注意的是,我意识到我确实没有完成这个问题,因为问题是如何使用 zsh 和 zli 来完成,而不是如何完成。如果我遇到一个答案,我会附加 solutions.I zli 的新手和它的细微差别,最近刚搬到 zsh。