答案1
function zle-line-init zle-keymap-select {
if [[ $KEYMAP == vicmd ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block
elif [[ $KEYMAP == (main|viins) ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam
fi
}
zle -N zle-line-init
zle -N zle-keymap-select
不同之处在于,我$KEYMAP
直接用if..fi
子句检查参数并执行gconftool-2
命令,而不是改变提示。
答案2
在最新版本的 gnome-terminal 中,您可以使用以下转义序列来更改光标:
\e[0 q
或\e[ q
:重置为配置文件设置中定义的值\e[1 q
:闪烁的方块\e[2 q
:稳定块\e[3 q
:闪烁下划线\e[4 q
: 稳定下划线\e[5 q
:闪烁的工字光束\e[6 q
: 稳固的工字钢
您可以通过例如打印这些内容echo -ne '\e[5 q'
。将它们连接到您的 zsh 配置,如 mpy 的答案中所示。