zsh中有切换到vicmd模式的命令吗?

zsh中有切换到vicmd模式的命令吗?

我已经映射了alt-kalt-j用于浏览历史记录,但是我想每当调用历史记录条目时自动切换 vicmd,因为大多数时候我需要将光标移动到某个位置并进行一些更改。

这是我当前在 .zshrc 中的设置,我应该怎样做才能达到上述目标?

    bindkey '^[k' up-line-or-history
    bindkey '^[j' down-line-or-history

答案1

Esc您只需按或Alt+jAlt+之后即可完成您想要的操作,k但如果您想节省 1 个按键,那么将以下内容添加到您的文件中.zshrc可以帮助您。

vi-cmd-up-line-history() { 
  zle vi-cmd-mode
  zle up-line-or-history 
} 
zle -N vi-cmd-up-line-history 
bindkey -M vicmd '^[k' vi-cmd-up-line-history
bindkey -M viins '^[k' vi-cmd-up-line-history

vi-cmd-down-line-history() { 
  zle vi-cmd-mode
  zle down-line-or-history 
} 
zle -N vi-cmd-down-line-history
bindkey -M vicmd '^[j' vi-cmd-down-line-history
bindkey -M viins '^[j' vi-cmd-down-line-history

它的作用是将名为vi-cmd-down-line-history和的新小部件绑定vi-cmd-up-line-historyAlt+jAlt+ k。这些小部件将模式更改为指令通过调用小部件vi-cmd-mode,然后分别触发down-line-or-historyup-line-or-history

相关内容