macvim-dev / macvim

Vim - the text editor - for macOS
https://macvim.org
Vim License
7.55k stars 682 forks source link

The cursor is absent in :shell #909

Open 097115 opened 5 years ago

097115 commented 5 years ago

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
ychin commented 5 years ago

I can reproduce this and seems like the bug has existed for a while (at least since snapshot-151). :term does not exhibit this behavior. I will need to double check this doesn't happen in regular gVim first.

for-coursera commented 4 years ago

May be somehow related:

  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
  1. But if we exit shell
  2. :set guioptions+=!
  3. And then enter shell again by executing :shell command, the cursor is visible again.