$BUFFERにテキストを追加するだけでなく、zshで選択モードをキャンセルするにはどうすればよいですか?

$BUFFERにテキストを追加するだけでなく、zshで選択モードをキャンセルするにはどうすればよいですか?

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

ベストアンサー1

zsh zleウィジェットで「選択モード」をキャンセルするには:

zle set-mark-command -n -1

または必要に応じて:

REGION_ACTIVE=0

zshがサポートするコンテンツは、主にemacsとvimと互換性のある形式です。表示($ MARK)とカーソル($ CURSOR)の間のテキストが強調表示されます。このドキュメントでは、リージョン(emacs)またはビジュアルモード(vim)についても説明します。 Windowsプログラムの一般的な動作は特に強力ではありません。 vimやemacsの仕組みを学ぶ方が良いですが、いくつかのウィジェットを置き換えると、ほとんどの場合Windowsスタイルの選択をエミュレートできます。たとえば、自己挿入を実行するには、テキストを挿入する前に選択内容を消去する必要があります。主な制限は、選択が常にカーソルで開始または終了する必要があることです。

おすすめ記事