Shell

除了將文本添加到 $BUFFER 之外,如何在 zsh 中取消選擇模式?

  • January 14, 2020

zle 小元件通過 Ctrl-Right 鍵、Ctrl-Left 鍵工作(第一個小元件正在啟動選擇模式):

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

要從 zsh zle 小元件中取消您所謂的“選擇模式”,它是:

zle set-mark-command -n -1

或者,如果您願意:

REGION_ACTIVE=0

zsh 支持的主要是 emacs 和 vim 兼容的形式。標記之間的文字 ( $ MARK) and cursor ( $ 游標)被突出顯示。文件還討論了區域 (emacs) 或可視模式 (vim)。使用 Windows 程序獲得的典型行為並不是特別強大。您最好學習 vim 或 emacs 的工作方式,但如果您替換一些小元件,則可以主要模擬 Windows 樣式選擇。例如 self-insert 需要在插入文本之前清除選擇。主要限制是選擇需要始終在游標處開始或結束。

引用自:https://unix.stackexchange.com/questions/562023