自定义光标在 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"
我在 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"