Символы запуска VIM в статусе

Символы запуска VIM в статусе

Я пытаюсь перейти на VIM в качестве основного текстового редактора, уже потратил кучу времени на настройку всего и чтение о VIM.

Теперь все в порядке, кроме одной вещи, которая меня беспокоит, все время, когда я это вижу. Когда я запускаю VIM (я использую только терминальную версию), иногда в строке состояния появляется какая-то сломанная последовательность escape или что-то еще, что выглядит неправильно

Такжепечатаниелюбая команда с : будет заменять символы по мере ввода, это тоже выглядит не очень хорошо.

Я проверил свой .vimrc несколько раз и не нашел ничего, что могло бы вызвать это. Единственное, что приходит мне в голову, это, возможно, я напутал с событиями VIM и хук-сигналами TMUX

в моем 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"'

в .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!

Но они тоже выглядят хорошо :/

Моя установка такова:

  • macOS 10.4.15
  • iTerm2 3.2.9
  • охМойЗш
  • tmux
  • macvim 8.1.950

спасибо за помощь

РЕШЕНИЕ: как@Николас Марриоттукажите, что это ответы на DSR (отчет о состоянии устройства), которые приходят из-за изменения размера при скрытии/отображении строки состояния tmux. В моем случае в настройке было немного излишеств. Во-первых, был хук tmux для фокуса панели:

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"'

этот должен был показывать/скрывать панель tmux при переключении между панелями или окнами, если хотя бы одно из них было открыто с VIM. Затем я добавил это в свой .vimrc:

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

которые должны были делать то же самое, но при событии VimEnter, я написал их, потому что думал, что pane-focus-inхук tmux не сработает при запуске Vim (панель останется прежней с тем же фокусом), на самом деле это не так, так и будет.

К сожалению, я не понимаю, что именно происходит, когда set -g status offand set -g pane-border-status offвыполняется дважды, возможно, второй раз tmux игнорирует и vim не может его распознать, но удаление его из конфигурации .vimrc помогло избавиться от этих символов.

решение1

Это ответы на DSR (отчет о состоянии устройства), я предполагаю, что vim отправляет это при изменении размера (включение и выключение строк состояния tmux изменит размер). Похоже, vim неправильно анализирует ответы.

Связанный контент