3

好的,几个小时前我切换到 zsh 并且我在一个巨大的配置中胡闹,但这对我来说可能是一个太大的咬:

我想做一个定界符自动配对,例如类型(并插入()。首先失败:

bindkey -s "(" "()"

第二次失败:

function autopair () {
zle -U "()"
zle backward-char
}
zle -N autopair autopair
bindkey "(" autopair

我认为两者都失败了,因为zsh试图在“(”插入(-U似乎明确地说)上递归。有没有办法避免这种情况?echo -ne "()"在函数的第一行替换当然可以避免这种情况,但不可编辑......任何想法如何强制插入?

加分点(形象地说:)):我想在插入后将光标设置在括号之间。然而,zle backward-char在我的功能中没有做任何事情......

想象一下这有多棒!谢谢!

4

1 回答 1

6
function autopair()
{
    LBUFFER+="("
    RBUFFER=")$RBUFFER"
}
zle -N autopair autopair
bindkey "(" autopair
于 2011-07-13T02:59:42.613 回答