3

OK、私は数時間前にzshに切り替えました、そして私は大騒ぎをしている巨大な構成にいます、しかしこれは私にとって多分大きすぎるかみ傷です:

type(などの区切り文字autopairnigを実行したいのですが、()を挿入します。最初の失敗:

bindkey -s "(" "()"

2番目の失敗:

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

zshが"("挿入で再帰しようとするため、両方とも失敗すると思います(-Uこれを明示的に言っているようです)。これを回避する方法はありますか?echo -ne "()"関数の1行目に代入すると、もちろんこれは回避されますが、編集できません...任意挿入を強制する方法のアイデア?

ボーナスポイント(比喩的に言えば:)):挿入後、括弧の間にカーソルを置きたいのですが。しかしzle backward-char、私の関数では何もしません...

これがどれほど素晴らしいか想像してみてください!ありがとう!

4

1 に答える 1

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