我已经设定
bindkey -v
在我的中~/.zshrc
,以便vim
每当我打开 zsh
.因此,viins
(又名插入模式)是启动新实例的键盘映射zsh
。我想让vicmd
键盘映射(又名正常模式)成为启动的键映射zsh
。
这就是我到目前为止所得到的
1) zsh
这是文档的部分其中讨论了键盘映射以及如何创建新的键盘映射。
2)我发现论坛中的帖子其中似乎是一个zsh
开发人员回答了一个与我类似的问题,他解释了为什么完成我的要求并不简单。
3)这是键盘映射中切换到键盘映射的vi-cmd-mode
编辑器功能(见下文)viins
vicmd
$ bindkey -v && bindkey | grep '"\^\["'
"^[" vi-cmd-mode
因此,如果我能够在打开vi-cmd-mode
新实例时调用编辑器函数(在本例中为 ) ,我也可以完成我的请求。zsh
也许,有一种方法可以通过在我的zshrc
.因此zsh
将从 开始viins
,但立即切换到vicmd
。
答案1
您链接的论坛帖子的第一个答案指向手册页文档中的一个示例,zshzle(1)
该示例可能可以实现您想要的效果。第二个较长的答案涉及链接main
键盘映射的技术细节vicmd
,虽然更接近论坛中提出的精确问题,但并不完全有用。所以您可能想尝试以下操作:
zle-line-init() { zle -K vicmd; }
zle -N zle-line-init
另外,如果您使用vared
内置函数,您可以使用以下命令强制其在键盘映射中启动vicmd
:
alias vared='vared -i vi-cmd-mode'