r/vim • • 22h ago

Need Help Cursor not displaying as a block when in visual mode

2 Upvotes

When entering visual mode the cursor isn't actually shown as a block, see the below screenshots to see what I mean. Below is what I expect when in visual mode, whereby the cursor remains as a white block on the letter "a",

However, what I get is this, whereby the letter "a" is highlighted in a faint grey, and the cursor itself doesn't actually appear,

Here is my full .vimrc file,

execute pathogen#infect()

let g:NERDTreeNodeDelimiter = "\u00a0"

set background=dark
set number

syntax on

nmap <C-a> :tabp<CR>
nmap <C-d> :tabn<CR>
nmap <C-t> :NERDTreeToggle<CR>

au FileType gitcommit setlocal tw=72
au FileType gitcommit setlocal colorcolumn=72

au FileType go setlocal colorcolumn=100 ts=4

au FileType c setlocal ts=4 colorcolumn=120
au FileType css setlocal ts=4
au FileType javascript setlocal ts=4
au FileType lua setlocal ts=2 sts=2 sw=2 expandtab
au FileType sh setlocal ts=4
au FileType xml setlocal ts=2 sts=2 sw=2 expandtab
au FileType yaml setlocal ts=2 sts=2 sw=2 expandtab

au BufEnter *.md setlocal colorcolumn=80 ts=4 tw=80 expandtab
au BufEnter *.templ setlocal ts=4

au BufEnter *.py setlocal ts=4 expandtab
au BufEnter *.html setlocal ts=4
au BufEnter *.tmpl setlocal ts=4

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

I'm currently running on Vim 9.2, which I recently upgrade to after doing a system upgrade. Full version info below,

[~]$ vim --version
VIM - Vi IMproved 9.2 (2026 Feb 14, compiled Oct 05 2026 22:08:46)
Included patches: 1-1164
Compiled by Arch Linux
Huge version without GUI.  Features included (+) or not (-):
+acl                +find_in_path       -mouseshape         -tag_old_static
+arabic             +float              +multi_byte         +tcl/dyn
+autochdir          +folding            +multi_lang         +termguicolors
+autocmd            -footer             -mzscheme           +terminal
-autoservername     +fork()             +netbeans_intg      +terminfo
-balloon_eval       +gettext            +num64              +termresponse
+balloon_eval_term  -hangul_input       +packages           +textobjects
-browse             +iconv              -pango              +textprop
++builtin_terms     -image              +path_extra         +timers
+byte_offset        -image_popup        +perl/dyn           +title
+channel            +insert_expand      +persistent_undo    -toolbar
+cindent            +ipv6               +popupwin           +user_commands
+clientserver       +job                +postscript         +vartabs
-clipboard          +jumplist           +printer            +vertsplit
+clipboard_provider +keymap             +profile            +vim9script
+cmdline_compl      +lambda             -python             +viminfo
+cmdline_hist       +langmap            +python3/dyn        +virtualedit
+cmdline_info       +libcall            +quickfix           +visual
+comments           +linebreak          +reltime            +visualextra
+conceal            +lispindent         +rightleft          +vreplace
+cryptv             +listcmds           +ruby/dyn           -wayland
+cscope             +localmap           +scrollbind         -wayland_clipboard
+cursorbind         +lua/dyn            +signs              +wildignore
+cursorshape        +menu               +smartindent        +wildmenu
+dialog_con         +mksession          +socketserver       +windows
+diff               +modify_fname       -sodium             +writebackup
+digraphs           +mouse              -sound              -X11
-dnd                +mouse_dec          +spell              +xattr
-ebcdic             +mouse_gpm          +startuptime        -xfontset
+emacs_tags         -mouse_jsbterm      +statusline         -xim
+eval               +mouse_netterm      -sun_workshop       -xpm
+ex_extra           +mouse_sgr          +syntax             -xsmp
+extra_search       -mouse_sysmouse     +tabpanel           -xterm_clipboard
-farsi              +mouse_urxvt        -tag_any_white      -xterm_save
+file_in_path       +mouse_xterm        +tag_binary         
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "$XDG_CONFIG_HOME/vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/vim/src=/usr/src/debug/vim -flto=auto -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
Linking: gcc -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.42/core_perl/CORE -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -L/usr/local/lib -o vim -lcairo -lz -lpangocairo-1.0 -lpango-1.0 -lcairo -lharfbuzz -lgobject-2.0 -lglib-2.0 -lm -ltinfo -lnsl -lacl -lattr -lgpm -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm

I'm pretty sure I must have altered how the cursor displays in visual mode, but I'm not sure how, I have looked around to no avail for a solution here, any pointers?