如何在vim中以不同的模式更改光标?

时间:2013-03-05 06:38:07

标签: vim vim-plugin

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

  1. 不使用gconftool或此类工具。我需要这只影响Vim的一个实例,而不是整个终端。
  2. 这必须在Gnome TerminalGVim
  3. 中使用

    PS :我尝试更改help gcr中的示例,但它仅适用于GVim,而不适用于Gnome终端中的Vim。

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

    PPPS :首选播放gcr

2 个答案:

答案 0 :(得分:7)

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

让我先说一下:

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

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

选项3:更改光标线颜色
参考:How do I change the vim cursor in Insert/normal mode?

最终结果:选项3最适合我,使用更多代码在主题中定义Cursor颜色。

vimrc 中,添加以下内容:

autocmd InsertEnter * set cul
autocmd InsertLeave * set nocul

然后,在主题文件中,将Cursor设置为比背景稍暗。例如

hi Cursor ctermbg=black
hi Normal ctermbg=darkgray

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

答案 1 :(得分:1)

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

来自documentation

  

目前支持的终端是适用于Mac的iTerm2(版本1.0.0.20130602   需要beta或更好),基于VTE3的终端(包括gnome-terminal),   和KDE的Konsole。也部分支持xterm控制台。年长   xterm不支持​​行光标,所以这个插件目前设置了   光标改为下划线。

     

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

     

该插件还支持tmux,并将在tmux中更改光标   会议也是。