VIM-Startsymbole im Status

VIM-Startsymbole im Status

Ich versuche, VIM als meinen primären Texteditor zu verwenden und habe bereits viel Zeit damit verbracht, alles einzurichten und mich über VIM zu informieren.

Jetzt ist alles so ziemlich in Ordnung, bis auf eine Sache, die mich immer stört, wenn ich sie sehe. Wenn ich VIM starte (ich verwende nur die Terminalversion), gibt es manchmal eine Art kaputte Escape-Sequenz oder etwas in der Statuszeile, das nicht richtig aussieht.

AuchTippenJeder Befehl mit : ersetzt die Symbole während der Eingabe, was auch nicht gut aussieht.

Ich habe meine .vimrc mehrfach überprüft und nichts gefunden, was dies verursachen könnte. Das einzige, was mir einfällt, ist, dass ich vielleicht VIM-Ereignisse und TMUX-Hooks vermasselt habe

in meiner tmux.conf

set-hook -g pane-focus-in 'if -F "#{==:#{pane_current_command},Vim}" "set -g status off; set -g pane-border-status off" "set -g status on; set -g pane-border-status bottom"'

in .vimrc

autocmd VimEnter * silent !tmux set -g status off
autocmd VimEnter * silent !tmux set -g pane-border-status off
autocmd VimLeave * silent !tmux set -g status on
autocmd VimLeave * silent !tmux set -g pane-border-status bottom
au FocusLost * :set laststatus=0
au FocusGained * :set laststatus=2
autocmd InsertLeave * redraw!

Aber sie sehen auch gut aus :/

Mein Setup ist:

  • macOS 10.4.15
  • iTerm2 3.2.9
  • Abonnieren
  • tmux
  • MacVim 8.1.950

Ich danke Ihnen für Ihre Hilfe

LÖSUNG: als@Nicholas Marriottweisen Sie darauf hin, dass dies Antworten auf DSR (Device Status Report) sind, die durch die Größenänderung beim Ausblenden/Einblenden der Tmux-Statusleiste entstehen. In meinem Fall war das Setup etwas übertrieben. Zuerst gab es einen Tmux-Hook für den Fensterfokus:

set-hook -g pane-focus-in 'if -F "#{==:#{pane_current_command},Vim}" "set -g status off; set -g pane-border-status off" "set -g status on; set -g pane-border-status bottom"'

Dieses sollte die Tmux-Leiste ein-/ausblenden, wenn zwischen Bereichen oder Fenstern gewechselt wird, von denen mindestens eines VIM geöffnet hat. Dann hatte ich das hier in meiner .vimrc:

  autocmd VimEnter * silent !tmux set -g status off
  autocmd VimEnter * silent !tmux set -g pane-border-status off

das sollte das Gleiche tun, aber ich habe sie beim VimEnter-Ereignis geschrieben, weil ich dachte, der Tmux- pane-focus-inHook würde beim Start von Vim nicht ausgelöst (der Bereich bleibt mit demselben Fokus derselbe), aber das stimmt eigentlich nicht, das würde er.

Leider verstehe ich nicht, was genau passiert, wenn set -g status offund set -g pane-border-status offzweimal ausgeführt wird. Vielleicht wird das zweite von tmux ignoriert und vim kann es nicht erkennen, aber das Entfernen aus der .vimrc-Konfiguration hat geholfen, diese Symbole loszuwerden

Antwort1

Dies sind Antworten auf DSR (Device Status Report). Ich vermute, dass vim dies bei Größenänderung sendet (das Ein- und Ausschalten der Tmux-Statuszeilen ändert die Größe). Es scheint, als würde vim die Antworten nicht richtig analysieren.

verwandte Informationen