自定义光标在 zsh 中的位置

Customizing the cursor's position in zsh

我在 zsh shell 中使用 this 代码片段插件并希望对其进行自定义。 我如何在展开代码段后将光标的位置自定义到特定位置(就像编辑通常对完成所做的那样)。

我写 l 并按 Ctrl-d 将其展开,使其变为 $(line ) 但光标移动到整个代码段之后,我希望它位于代码段内,这样我就可以写一个line 之后和字符 )

之前的数字

这是负责扩展片段的函数(我仍然没有从源代码中编辑任何东西,它仍然与存储库相同):

snippet-expand () {
    emulate -L zsh
    setopt extendedglob
    local MATCH
    LBUFFER=${LBUFFER%%(#m)[.\-+:|_a-zA-Z0-9]#} 
    LBUFFER+=${snippets[$MATCH]:-$MATCH} 
}

您附加到 $LBUFFER 的所有内容都会立即出现在光标左侧。相反,您在 $RBUFFER 前面添加的所有内容都会立即出现在光标右侧。因此,将您的代码段分成两部分并执行

LBUFFER="$LBUFFER<left half of your snippet>"
RBUFFER="<right half of your snippet>$RBUFFER"