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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...