Я пытаюсь перейти на 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 off
and set -g pane-border-status off
выполняется дважды, возможно, второй раз tmux игнорирует и vim не может его распознать, но удаление его из конфигурации .vimrc помогло избавиться от этих символов.
решение1
Это ответы на DSR (отчет о состоянии устройства), я предполагаю, что vim отправляет это при изменении размера (включение и выключение строк состояния tmux изменит размер). Похоже, vim неправильно анализирует ответы.