#linux #vim #ssh #tmux
#linux #vim #ssh #tmux
Вопрос:
Немного контекста: я использую vimx (то есть совместимую версию терминала vim для RedHat, которая дает мне возможность работать с регистрами буфера обмена и * X в vim). Я подключаю ssh к своему серверу (с переадресацией X с использованием опции -Y) и запускаю vim (т.е. vimx) в tmux. Если я отсоединяю сеанс tmux и снова подключаюсь к нему в том же сеансе ssh, все работает нормально. Однако, если я выхожу из сеанса ssh и снова вхожу в систему, а затем подключаюсь к моему сеансу tmux (в котором запущен vim), тогда привязка ключей vim и сопоставления ключей (например, ctrl n для новой вкладки) и команды vim (например, «: buffers» для отображения буферов vim или «: reg»для отображения регистров) больше не будет работать, пока я не закрою vim и не открою его снова. Я подозреваю, что это проблема с отображением X11 в vim и tmux, однако я не могу найти, что происходит не так в vim или tmux.
Краткое описание проблемы и способы ее воспроизведения:
1) выполните ssh для сервера: ssh -Y user @server
2) откройте новый сеанс tmux: tmux -2
3) откройте vimx: vimx myfile.cc
4) отсоединиться от tmux: ctrl b d
5) выход из сеанса ssh: введите exit в терминале или нажмите ctrl d
6) повторное подключение к серверу: ssh -Y user @server
7) повторное подключение к сеансу tmux: подключение tmux-2
на шаге 7 я снова подключусь к сеансу vimx, однако ни одно из моих сопоставлений ключей vim или команд для vim сейчас не работает. (Они исправляются, если я закрываю и снова открываю vim, но в этом случае, что хорошего в tmux для удаленной работы с vim ?! :))
Ответ №1:
Вместо перезапуска vim просто используйте команду :source для перезагрузки вашего vimrc.
:so ~/.vimrc
Это проще, чем перезапуск, и будет работать даже в процессе редактирования файла.