(Bash+Kitty)设置vi模式,设置光标切换

设置了vi模式后,我就一直在解决光标的问题,结果花了几个小时都没成功,
然后偶然间发现使用GNOME-Terminal能成功,而Kitty不能成功,然后对比着问了GPT,原来是Kitty的shell_intergration的锅😡💢


设置vi模式

运行set -o vi,就可以体验Bash的vi模式
如果想保持vi模式常开,可以在~/.bashrc里写入set -o vi,加在末尾就好

设置光标切换

开启vi模式后,光标的样式一直都不变,不管是在normal模式下,还是在insert模式下,这不利于我们判断所处的模式,有点不方便
那么,怎么样才能让光标在Normal模式下是块状的,而在insert模式下是竖线呢?
下面的方法来自: How to change cursor shape depending on VI mode in Bash?

  1. 新建一个文件:~/.inputrc
  2. 在.inputrc里添加以下代码:
set show-mode-in-prompt on
set vi-cmd-mode-string "\1\e[2 q\2"
set vi-ins-mode-string "\1\e[6 q\2"
  1. 保存,重启终端,你应该可以看到效果

解决kitty光标设置之后还是没变化的问题

kitty有shell集成功能,这是好事
但是,在这个功能里,有一项是: 在shell提示符处自动将光标形状更改为条形
这项功能就是导致我们设置光标失败的罪魁祸首!!!
所以,我们需要关闭这一小项功能

  1. 打开kitty的配置文件(~/.config/kitty/kitty.conf),如果没有,可以运行kitty +kitten config来生成
  2. 配置文件末尾添加shell_intergration no-cursor
  3. 保存,重启终端
posted @ 2025-04-30 12:05  万象天工  阅读(72)  评论(0)    收藏  举报