2

如何使 Vim 在不同模式下更改光标以满足这些条件:

  1. 不使用gconftool或这样的工具。我只需要影响 Vim 的一个实例,而不是整个终端。
  2. 这必须在Gnome Terminal和中工作GVim

PS:我已经尝试用 sample in 进行更改help gcr,但它仅适用于 GVim,不适用于 Gnome 终端中的 Vim。

PPS:我已经测试了http://vim.wikia.com/wiki/Change_cursor_shape_in_different_modes,但它改变了整个终端的光标。

PPPS:玩玩gcr是首选。

4

2 回答 2

7

我以前遇到过同样的问题,并尝试了几个选项。

我先总结一下:

选项 1:更改光标形状。
参考: http: //vim.wikia.com/wiki/Change_cursor_shape_in_different_modes
结果:这对我不起作用

选项 2:更改光标颜色。
参考: http: //vim.wikia.com/wiki/Configuring_the_cursor
结果:这可行,但在离开 vim 后会改变终端光标。我不能接受。

选项 3:更改光标线颜色
参考:如何在插入/正常模式下更改 vim 光标?

最终结果:选项 3 最适合我,需要更多代码来定义Cursor主题中的颜色。

vimrc中,添加这些:

autocmd InsertEnter * set cul
autocmd InsertLeave * set nocul

然后,在您的主题文件中,设置Cursor为比背景暗一点。例如

hi Cursor ctermbg=black
hi Normal ctermbg=darkgray

添加这些设置后,当您进入视觉模式时,线条会变暗,以便您轻松识别。它在 Gvim 中的工作方式有点不同,但对我来说是完全可以接受的。此外,一旦你习惯了终端 vim,你就会完全忘记 Gvim。

于 2013-03-11T09:20:27.973 回答
1

您可以使用togglecursor 插件。它完全符合您的要求,并尝试支持尽可能多的终端,包括 gnome 终端。该插件通过发送终端转义序列来更改光标形状而不是使用外部应用程序来工作。光标形状在退出 vim 时恢复。

文档中:

当前支持的终端是 Mac 的 iTerm2(需要 1.0.0.20130602 测试版或更高版本)、基于 VTE3 的终端(包括 gnome-terminal)和 KDE 的 Konsole。xterm 控制台也得到部分支持。较旧的 xterm 不支持行光标,因此该插件当前将光标设置为下划线。

旧版本的基于 VTE3 的终端(v0.39 之前)不支持通过转义序列更改光标,因此不受支持。在不受支持的终端上,Vim 的默认行为保持不变。

该插件还支持 tmux,并且也会在 tmux 会话中更改您的光标。

于 2015-06-04T19:08:49.713 回答