Neither set guicursor=i:ver25-iCursor nor set guicursor=a:blinkon0 have any effect in VIM on Windows.

I expected them to change the caret from a block to a line and to stop it from blinking, respectively, but neither happens.

Of course, I'm using cmd.

Changing the cursor from "Legacy" to "Vertical Bar" in Properties > Terminal > Cursor Shape doesn't make a difference when vim launches.

Doing that after vim launches does make a difference, except it resets once I type.

OS: Windows 10 Pro 2004 10.0.19041.630 64-bit


VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 13:19:27)
MS-Windows 32-bit console version
Compiled by mool@tororo
Huge version without GUI.  Features included (+) or not (-):
+acl               +diff              +linebreak         -python3           +timers
+arabic            +digraphs          +lispindent        +quickfix          +title
+autocmd           -dnd               +listcmds          +reltime           -toolbar
+autochdir         -ebcdic            +localmap          +rightleft         +user_commands
+autoservername    +emacs_tags        -lua               -ruby              +vartabs
-balloon_eval      +eval              +menu              +scrollbind        +vertsplit
+balloon_eval_term +ex_extra          +mksession         +signs             +virtualedit
-browse            +extra_search      +modify_fname      +smartindent       +visual
++builtin_terms    -farsi             +mouse             +sound             +visualextra
+byte_offset       +file_in_path      -mouseshape        +spell             +viminfo
+channel           +find_in_path      +multi_byte        +startuptime       +vreplace
+cindent           +float             +multi_lang        +statusline        +vtp
+clientserver      +folding           -mzscheme          -sun_workshop      +wildignore
+clipboard         -footer            -netbeans_intg     +syntax            +wildmenu
+cmdline_compl     +gettext/dyn       +num64             +tag_binary        +windows
+cmdline_hist      -hangul_input      +packages          -tag_old_static    +writebackup
+cmdline_info      +iconv/dyn         +path_extra        -tag_any_white     -xfontset
+comments          +insert_expand     -perl              -tcl               -xim
+conceal           +job               +persistent_undo   +termguicolors     -xpm_w32
+cryptv            +jumplist          +popupwin          +terminal          -xterm_save
+cscope            +keymap            -postscript        -termresponse      
+cursorbind        +lambda            +printer           +textobjects       
+cursorshape       +langmap           +profile           +textprop          
+dialog_con        +libcall           -python            -tgetent           
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
       defaults file: "$VIMRUNTIME\defaults.vim"
Linking: link  /nologo /opt:ref /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib netapi32.lib uuid.lib /machine:i386   libcmt.lib  user32.lib          winmm.lib WSock32.lib  /PDB:vim.pdb -debug
  • 1
    Have you read :h 'guicursor' ... where it says you can only change the height of the cursor in Win console. You have to be in Win GUI version to change all the other stuff. – B Layer Nov 19 at 21:39
  • The 'guicursor' setting is limited on the console version of Vim... From :help 'guicursor': "It fully works in the GUI. In a Win32 console, only the height of the cursor can be changed." Maybe you're trying to change a property that is not really supported on the console version? – filbranden Nov 19 at 21:40
  • 1
    Shame. That seems to be the case. How about the extra question? – Unknow0059 Nov 19 at 21:41
  • 1
    Welcome to Vi and Vim! I’ve removed the ancillary questions; if you have other questions, they go in separate Questions (How to Ask). You can still find them in the edit history – D. Ben Knoble Nov 20 at 0:33
  • @BLayer it would be convenient if you 'answered' that so that I could give this question closure. – Unknow0059 Nov 20 at 15:35

As a preface consider how different console and GUI applications are. Consoles are essentially structurally limited to rows and columns of text and most of what is displayed is characters from the active font. GUIs, of course, are much more flexible and essentially allow control down to the pixel level.

As a result of all this, there are a number of differences in the "look and feel" settings between console Vims and terminal Vims and GUI Vims. As you've probably guessed by now 'guicursor' is one of those settings that differs. Everything you need to know is in the help at :h 'guicursor'. The key section says...

This option tells Vim what the cursor should look like in different modes. It fully works in the GUI. In an MSDOS or Win32 console, only the height of the cursor can be changed. This can be done by specifying a block cursor, or a percentage for a vertical or horizontal cursor.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.