在vim中切换垂直和水平分割窗口时,光标消失了

28

我一直在使用以下命令在VIM中将一些窗口从垂直分隔切换到水平分隔并切换回来:

CTRL-W + K
CTRL-W + L
CTRL-W + J
CTRL-W + H

我多次这样做后,光标消失了。我仍然可以输入,底部的状态栏也显示我的位置,但是没有闪烁的光标。针对以下问题,有何想法:

  1. 为什么会出现这种情况?
  2. 如何恢复光标?

我正在使用Linux上的vim 7.2。


只要我不将整个gVim窗口最大化,我就没有这个问题... - Yibo Yang
11个回答

33

我有同样的问题,我使用了几个可行的解决方法:

  1. 最大化gvim窗口,然后再次点击最大化按钮将其恢复到原始大小。这会使光标重新出现。
  2. 运行一些shell命令,例如!echo > /dev/null - 这似乎也可以使光标回来。

我正在尝试是否采取以下措施(完全删除左侧滚动条)可以完全解决此问题 - 在有限的实验中似乎有效,但还没有定论 :)

set guioptions-=L

set guioptions=-l

Osho

:奥修

2
我发现你可以在gVim中简单地双击,然后按Esc键 - 点击会显示光标,而Esc随后会退出可视模式。 - KomodoDave
#1 对我来说起作用了。非常奇怪的错误! - Patrick Da Silva
2
1和2都没有起作用。对我来说,set guioptions-=L 起了作用。 - Deepak Yadav
我刚遇到了这个问题,不仅光标消失了,而且我也看不到我输入的vi命令。1和2都对我有用,但我更喜欢第2个,但是带有右侧滚动条set guioptions=-r``set guioptions-=R,这样对我来说看起来更好看。 - undefined

5
:colorscheme <you colorscheme>

获得光标。

3

这是一个反映在Ubuntu上的错误(尽管在Fedora中也会出现)https://bugs.launchpad.net/ubuntu/+source/vim/+bug/616858

从错误报告中,有两个解决方法:

  • 禁用mousehide选项(:set nohousehide)可防止该错误出现
  • 双击单词以突出显示会使光标再次出现。

希望这可以帮到你。


2

我在Ubuntu上的gvim中几次注意到这个问题。不知道是什么原因引起的,但重新加载vimrc似乎可以解决它。


我也注意到在Ubuntu 12.04中使用gvim时有几次出现这种情况,只需在不同的窗口之间单击即可解决,无需最大化/最小化/命令。 - KomodoDave

1

查看你的~/.gvimrc文件,将所有内容注释掉并重新启动gvim。检查问题是否仍然存在。进行二进制搜索以确定问题的具体原因。

在我的情况下,是这行代码引起了问题,我将其删除:

set gcr=n:blinko

这应该可以防止光标闪烁。我可以不用它。也许我做了一个更新,与此配置相关的某些内容发生了变化。


使用 set gcr+=n:blinkon0 在正常模式下禁用光标闪烁,使用 a:blinkon0 永久禁用它。 - amphetamachine

1
我注意到,当您打开 gvim 而没有任何文件,然后使用 :e 和 :vsplit 命令时,您永远不会失去光标。

0
我注意到在与Windows(vim窗口)玩耍时,恢复光标的最佳方法是重新加载.vimrc文件。
为了方便地执行此操作,我添加了一个快捷方式以源VIMRC。源代码vimrc后,我的光标会重新出现以进行插入模式。
到目前为止,我还没有找到光标消失的原因。
" - | reloading vimrc, sourcing it 
nnoremap <leader>sv :source $MYVIMRC<CR>

我的领导是",,"

所以当我输入:,,sv时,我的光标会重新出现以进行插入模式。


0

尝试重新加载颜色方案,对我有用...

我做了以下操作

:syntax reset
:colorscheme mycolortheme

0

我使用gnome-terminal中的vimx时遇到了同样的问题(不像其他评论者使用gvim)。

我注意到光标只在命令插入模式下消失,在可视模式下存在。我尝试了上面所有的建议,但都没有帮助。这里有一个关于配置vim中光标的好wiki,但也没有帮助。

我尝试了相同文件的vimxvimvi,发现它们都没有显示光标。然后我注意到gnome-terminal也没有显示光标。

以下是一些关于如何使gnome-terminal显示光标的建议。我只是使用了另一个选项卡,那个可以正常显示光标。


-1

你可以尝试使用 CTRL+L 来重新绘制屏幕。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接