除了将文本添加到 $BUFFER 之外,如何以其他方式取消 zsh 中的选择模式?

除了将文本添加到 $BUFFER 之外,如何以其他方式取消 zsh 中的选择模式?

zle 小部件通过 Ctrl-右键、Ctrl-左键工作(第一个小部件正在启动选择模式):

c-sel-r-reg () {
  local WORDCHARS=${WORDCHARS/\/}
  zle select-in-word
}
zle -N c-sel-r-reg
bindkey "^[Oc" c-sel-r-reg

c-l-reg () {
  local WORDCHARS=${WORDCHARS/\/}
  zle vi-backward-word
  zle end-of-line
  zle -U " "
}
zle -N c-l-reg
bindkey "^[Od" c-l-reg

答案1

要从 zsh zle 小部件取消您所说的“选择模式”,请执行以下操作:

zle set-mark-command -n -1

或者如果您愿意:

REGION_ACTIVE=0

zsh 支持的内容主要是 emacs 和 vim 兼容的形式。标记 ($MARK) 和光标 ($CURSOR) 之间的文本被突出显示。文档还讨论了区域 (emacs) 或视觉模式 (vim)。 Windows 程序的典型行为并不是特别强大。您最好学习 vim 或 emacs 的工作原理,但如果您替换一些小部件,则可以大部分模拟 Windows 样式选择。例如,自插入需要在插入文本之前清除选择。主要限制是选择需要始终从光标处开始或结束。

相关内容