如何在 Cygwin 终端中的 Vim 中获取块光标?

如何在 Cygwin 终端中的 Vim 中获取块光标?

我习惯在 Vim 的正常模式下使用块状光标。这符合 Vim 范式;按下 时x,可以清楚地知道要删除哪个字符。

我在 Windows 计算机上安装了 Cygwin,但当我在其终端中使用 Vim 时,I即使在正常模式下,我也能看到光标。我怎样才能将光标改为块状?

答案1

这个问题Cygwin 邮件列表上的 通过将一些神秘的变量设置为适当的转义序列来回答这个问题。将其添加到您的.vimrc

let &t_ti.="\e[1 q"
let &t_SI.="\e[5 q"
let &t_EI.="\e[1 q"
let &t_te.="\e[0 q"

答案2

在 cygwin 终端仿真器中有一个设置:

右键单击窗口标题栏 > 选项 > 外观 > 光标 > 光标单选按钮

答案3

创建一个文件~/.minttyrc,向其中添加以下行

CursorType=block

然后重新启动mintty,这是 Cygwin 的默认终端。

答案4

人们提出了@Kazark 的答案为整个 shell 会话设置光标的问题,要将其设置回一行,您可以做以下几件事:

在 .vimrc 中:

autocmd VimLeave * silent let &t_te.="\e[5 q"

当您离开 vim 时它应该会设置,但它并不完美(特别是当我在 Windows 和我连接到的 Linux 机器上运行 tmux 时),您可以发出:

 printf '\033[5 q' 

在命令提示符下。

相关内容