macvim-dev / macvim-dev/macvim

The cursor is absent in :shell

Open
#909 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Vim Script
Stars
7.9k
Forks
691
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

After :set guicursor+=a:blinkon0, the cursor in the shell, produced by the :shell command, is no longer visible.

To Reproduce
Detailed steps to reproduce the behavior:

  1. Run mvim --clean
  2. Enter shell by executing :shell command, the cursor is there
  3. Exit shell
  4. Disable guicursor blinking: :set guicursor+=a:blinkon0
  5. Enter shell by executing :shell command, the cursor is no longer visible

Expected behavior
The cursor should be visible.

Screenshots
Before disable blinking:
https://i.imgur.com/9M0adF1.png

After disable blinking:
https://i.imgur.com/zzuZF0m.png

Environment (please complete the following information):

:ver
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 11 2019 08:22:43)
macOS version
Included patches: 1-1517
Compiled by travis@Traviss-Mac.local
Huge version with MacVim GUI.  Features included (+) or not (-):
+acl               +cursorshape       +job               +mouse_urxvt       +signs             +user_commands
+arabic            +dialog_con_gui    +jumplist          +mouse_xterm       +smartindent       +vartabs
+autocmd           +diff              +keymap            +multi_byte        -sound             +vertsplit
+autochdir         +digraphs          +lambda            +multi_lang        +spell             +virtualedit
-autoservername    +dnd               +langmap           -mzscheme          +startuptime       +visual
+balloon_eval      -ebcdic            +libcall           +netbeans_intg     +statusline        +visualextra
+balloon_eval_term +emacs_tags        +linebreak         +num64             -sun_workshop      +viminfo
+browse            +eval              +lispindent        +odbeditor         +syntax            +vreplace
++builtin_terms    +ex_extra          +listcmds          +packages          +tag_binary        +wildignore
+byte_offset       +extra_search      +localmap          +path_extra        -tag_old_static    +wildmenu
+channel           -farsi             +lua/dyn           +perl/dyn          -tag_any_white     +windows
+cindent           +file_in_path      +menu              +persistent_undo   -tcl               +writebackup
+clientserver      +find_in_path      +mksession         +postscript        +termguicolors     -X11
+clipboard         +float             +modify_fname      +printer           +terminal          -xfontset
+cmdline_compl     +folding           +mouse             +profile           +terminfo          +xim
+cmdline_hist      -footer            +mouseshape        +python/dyn        +termresponse      -xpm
+cmdline_info      +fork()            +mouse_dec         +python3/dyn       +textobjects       -xsmp
+comments          +fullscreen        -mouse_gpm         +quickfix          +textprop          -xterm_clipboard
+conceal           -gettext           -mouse_jsbterm     +reltime           +timers            -xterm_save
+cryptv            -hangul_input      +mouse_netterm     +rightleft         +title
+cscope            +iconv             +mouse_sgr         +ruby/dyn          +toolbar
+cursorbind        +insert_expand     -mouse_sysmouse    +scrollbind        +transparency
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe  -DMACOS_X -DM
ACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openss
l/lib -L/usr/local/opt/readline/lib -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/u
sr/local/opt/openssl/lib -L/usr/local/opt/readline/lib  -L/usr/local/lib -o Vim -framework Cocoa -framework Carbon
      -lm  -lncurses -liconv -framework AppKit   -fstack-protector  -L/System/Library/Perl/5.18/darwin-thread-multi
-2level/CORE

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with mvim --clean, entering :shell, exiting, setting guicursor+=a:blinkon0, and entering :shell again. Start by tracing the :shell path and how guicursor is applied; done means the shell cursor remains visible after blinking is disabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, vim
Domain
cli, desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.