Terminal mode buffers do not implement Xterm control sequences to change cursor shape correctly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- vim
- Área
- desktop
Línea de trabajo
Reproduce el problema con mvim --clean y luego compara el comportamiento de las secuencias CSI Ps SP q indicadas con gvim en un búfer de terminal. Rastrea cómo MacVim gestiona las secuencias del estilo del cursor del terminal, centrándote en por qué los valores 3–6 se vuelven invisibles mientras que 1–2 funcionan. Se considerará terminado cuando los estilos de subrayado y barra, tanto parpadeantes como fijos, se rendericen correctamente sin hacer regresiones en los estilos de bloque.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
According to the VIM documentation in terminal.txt under terminal-cursor-style:
By default the cursor in the terminal window uses a not blinking block. The
normal xterm escape sequences can be used to change the blinking state and the
shape. Once focus leaves the terminal window Vim will restore the original
cursor.
These control sequences are defined as follows (source: XTerm Control Sequences ):
CSI Ps SP q
Set cursor style (DECSCUSR), VT520.
Ps = 0 ⇒ blinking block.
Ps = 1 ⇒ blinking block (default).
Ps = 2 ⇒ steady block.
Ps = 3 ⇒ blinking underline.
Ps = 4 ⇒ steady underline.
Ps = 5 ⇒ blinking bar, xterm.
Ps = 6 ⇒ steady bar, xterm.
However, trying these in a terminal inside the GUI of MacVim does not work.
To Reproduce
Detailed steps to reproduce the behavior:
- Run
mvim --clean - Type
:terminalto create a new terminal emulator buffer - Type any of the following commands and press enter:
printf '\e[1 q'should turn the cursor into a blinking block, which works;printf '\e[2 q'should turn the cursor into a steady block, which works;printf '\e[3 q'should turn the cursor into a blinking underline, instead the cursor turns invisible;printf '\e[4 q'should turn the cursor into a steady underline, instead the cursor turns invisible;printf '\e[5 q'should turn the cursor into a blinking bar, instead the cursor turns invisible;printf '\e[6 q'should turn the cursor into a steady bar, instead the cursor turns invisible.
Expected behavior
The same steps executed in gvim on Kubuntu 18.04 all work as expected, changing the cursor shapes as prescribed by the definition of the control sequences cited above.
Environment (please complete the following information):
-
Vim version
:version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 24 2021 14:13:28) macOS version - x86_64 Included patches: 1-3455 Compiled by GitHub Actions Huge version with MacVim GUI. Features included (+) or not (-): +acl +file_in_path -mouse_sysmouse +tag_binary +arabic +find_in_path +mouse_urxvt -tag_old_static +autocmd +float +mouse_xterm -tag_any_white +autochdir +folding +multi_byte -tcl -autoservername -footer +multi_lang +termguicolors +balloon_eval +fork() -mzscheme +terminal +balloon_eval_term +fullscreen +netbeans_intg +terminfo +browse +gettext +num64 +termresponse ++builtin_terms -hangul_input +odbeditor +textobjects +byte_offset +iconv +packages +textprop +channel +insert_expand +path_extra +timers +cindent +ipv6 +perl/dyn +title +clientserver +job +persistent_undo +toolbar +clipboard +jumplist +popupwin +transparency +cmdline_compl +keymap +postscript +user_commands +cmdline_hist +lambda +printer +vartabs +cmdline_info +langmap +profile +vertsplit +comments +libcall +python/dyn +virtualedit +conceal +linebreak +python3/dyn +visual +cryptv +lispindent +quickfix +visualextra +cscope +listcmds +reltime +viminfo +cursorbind +localmap +rightleft +vreplace +cursorshape +lua/dyn +ruby/dyn +wildignore +dialog_con_gui +menu +scrollbind +wildmenu +diff +mksession +signs +windows +digraphs +modify_fname +smartindent +writebackup +dnd +mouse -sodium -X11 -ebcdic +mouseshape -sound -xfontset +emacs_tags +mouse_dec +spell +xim +eval -mouse_gpm +startuptime -xpm +ex_extra -mouse_jsbterm +statusline -xsmp +extra_search +mouse_netterm -sun_workshop -xterm_clipboard -farsi +mouse_sgr +syntax -xterm_save 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-u nknown-pragmas -pipe -DMACOS_X -DMACOS_X_DARWIN -g -O2 -arch x86_64 -arch arm64 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wall -Wextra -Wshadow -Werro r -Wno-error=missing-field-initializers -Wno-error=deprecated-declarations -Wno- error=unused-function Linking: clang -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/li byaml/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L. -fs tack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local /opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -arch x86_64 -arch arm64 -L/u sr/local/lib -o Vim -lm -lncurses -liconv /usr/local/lib/libintl.a -framework Ap pKit -fstack-protector -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CO RE -
OS: macOS Catalina 10.15.7
-
Terminal: GUI
- Lenguaje dominante
- Vim Script
- Estrellas
- 7.9k
- Forks
- 691
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de macvim-dev/macvim
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
macvim-dev/macvim#1697 · 4 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
macvim-dev/macvim#1658 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
macvim-dev/macvim#1657 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
macvim-dev/macvim#1655 ·
-
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
macvim-dev/macvim#1653 ·
Todos los issues de macvim-dev/macvim
Issues similares
-
comp/desktop P3 type/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
NousResearch/hermes-agent#118866 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
[Package Request]: Raven AbiertoHelp-Wanted Package-Request
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/winget-pkgs#438682 ·
-
Daemon passes --experimental-wasm-jspi unconditionally on Node >= 24; Node 26 rejects the flag Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Automattic/studio#4908 ·