আই-বিম এবং ব্লক (আন্ডারস্কোর, ব্যবহারের জন্য \033[4 q
) এর মধ্যে কার্সারের আকার পরিবর্তন করার জন্য আরও একটি সমাধান । এটি আপনার যুক্ত করুন ~/.zshrc
।
zle-keymap-select () {
if [ $KEYMAP = vicmd ]; then
printf "\033[2 q"
else
printf "\033[6 q"
fi
}
zle -N zle-keymap-select
zle-line-init () {
zle -K viins
printf "\033[6 q"
}
zle -N zle-line-init
bindkey -v
Https://bbs.archlinux.org/viewtopic.php?id=95078 থেকে পরিবর্তিত । জিনোম-টার্মিনাল 3.22 পরীক্ষিত।
হালনাগাদ
তবুও কার্সার আকার পরিবর্তন করার জন্য আরও একটি সমাধান এখানে পাওয়া যাবে । এটি আপাতভাবে আইটার্ম 2 এর জন্য কাজ করে যা আমার কাছে পরীক্ষার উপায় নেই তবে এটি অন্য কারও পক্ষে উপযোগী হলে এখানে এটি যুক্ত করা উচিত। আপনার চূড়ান্ত সংযোজন ~/.zshrc
হবে
function zle-keymap-select zle-line-init
{
# change cursor shape in iTerm2
case $KEYMAP in
vicmd) print -n -- "\E]50;CursorShape=0\C-G";; # block cursor
viins|main) print -n -- "\E]50;CursorShape=1\C-G";; # line cursor
esac
zle reset-prompt
zle -R
}
function zle-line-finish
{
print -n -- "\E]50;CursorShape=0\C-G" # block cursor
}
zle -N zle-line-init
zle -N zle-line-finish
zle -N zle-keymap-select
CTRL+C
ভিআই-কমান্ড মোডে থাকাকালীন কিছু করেন তবে প্রম্পটটি পুনরায় সেট হয়ে যাবে, তবে আপনি যখন সত্যই সন্নিবেশ মোডে উপস্থিত হবেন তখন কমান্ড মোডে উপস্থিত আছেন indicatezle-line-init
alwaysোকানো মোডে সূচকটি সর্বদা পরিবর্তন করা উচিত। কিছু কারণের$KEYMAP
জন্য zle-line-init বলা হলে সঠিকভাবে আপডেট হয় না।