
さまざまな方法があるZSH で VI キー バインディングを使用しているときに、挿入モードか通常モードかを表示します。
Gnome-terminalもキャレットを変更できるを呼び出してブロックから█
ibeam に変換します。|
gconftool-2
これら 2 つを組み合わせて、挿入モードの ibeam と通常モードのブロックを作成するにはどうすればよいでしょうか?
答え1
質問に両方の答えを記載する[1、2] これらを合わせると、次のようになります。
function zle-line-init zle-keymap-select {
if [[ $KEYMAP == vicmd ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block
elif [[ $KEYMAP == (main|viins) ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam
fi
}
zle -N zle-line-init
zle -N zle-keymap-select
違いは、プロンプトを変更するのではなく、句$KEYMAP
を使用してパラメータを直接チェックしif..fi
、コマンドを実行することです。gconftool-2
答え2
gnome-terminal の最新バージョンでは、次のエスケープ シーケンスを使用してカーソルを変更できます。
\e[0 q
または\e[ q
: プロファイル設定で定義されたものにリセットします\e[1 q
: 点滅ブロック\e[2 q
: 安定したブロック\e[3 q
: 点滅する下線\e[4 q
: 下線が引かれています\e[5 q
: 点滅するIビーム\e[6 q
: 安定したIビーム
これらは、例えば次のようにして印刷できますecho -ne '\e[5 q'
。mpy の回答に示されているように、これらを zsh 構成に接続します。