在vim中将光标设置为垂直细线

21

我正在尝试将插入模式下的光标设置为细竖线,但无法实现。我已经在我的 .vimrc 文件中尝试了以下内容:

set guicursor+=i:ver100-iCursor

它不会在插入模式下将光标设置为竖线。

我缺少什么以及如何做到这一点?


1
你是使用 gVim 还是命令行 Vim? - icktoofay
在gvim中,这不是默认行为吗? - kev
我想把它变成一个细的竖条,而不是一个块。 - mpora
我不知道那是默认设置。 - mpora
4个回答

20

14

对于gnome终端版本>3.15
将以下代码添加到您的~/.vimrc文件中。

if has("autocmd")
  au VimEnter,InsertLeave * silent execute '!echo -ne "\e[2 q"' | redraw!
  au InsertEnter,InsertChange *
\ if v:insertmode == 'i' | 
\   silent execute '!echo -ne "\e[6 q"' | redraw! |
\ elseif v:insertmode == 'r' |
\   silent execute '!echo -ne "\e[4 q"' | redraw! |
\ endif
au VimLeave * silent execute '!echo -ne "\e[ q"' | redraw!
endif

在正常模式下,您将获得一个块状光标,在插入模式下,您将获得一个细光标。

enter image description here


1
抱歉,但它在我的Ubuntu 14.04上无法运行。在添加这些行之后光标仍然是块状的,可能有什么原因吗? - Scott Yang
真的吗?那么如果我们打开一个新终端,~/.vimrc 仍然有效,对吗?我试过了,感到非常困惑。在修改 ~/.vimrc 后,你做了什么?能否请你发布一张配置生效后光标的截图? - Scott Yang
2
这对我也起作用了,但是重绘非常烦人。 - roeland
2
在我的Vim8、Ubuntu 20.04和Gnome终端3.36上完美运行。 - C. Smith

13
这就是解决方法: set guicursor=i:ver25-iCursor 我必须将100减少为25

1
我明白了,那很有道理。如果光标是“100”,那么自然就会变成100%的粗度,从而成为块状光标。找到这一点真不错。 :) - greduan
1
这是在哪个操作系统上?在Ubuntu 20.04上无法工作。 - Nathan majicvr.com
3
@Nathan 在Ubuntu 20.04中,您可以在终端的首选项设置中更改它(在终端的任何位置右键单击并选择“首选项”),然后选择光标形状=I型光标。 - ado sar
@adosar 谢谢!回家后会尝试。真不敢相信我整整一个星期都没有查看我的SO收件箱,太奇怪了。 - Nathan majicvr.com

0

我在Mac上使用iTerm2,但以上方法都不起作用。虽然有些笨拙(vim和界面不太对),但是它能够正常工作。要在竖杠或方框之间切换,请依次点击“Profiles” -> “Open Profiles...” -> “Edit Profiles...” -> “Text”。

enter image description here

enter image description here

enter image description here


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