Из практических соображений я использую tmux внутри экрана gnu (*).
Внутри tmux у меня есть emacs, пока все работает хорошо: шрифты, символы, цвета и т. Д.
Только одна вещь не работает с этой конфигурацией: изменение формы курсора с использованием escape-последовательностей VTE. Если я использую emacs только внутри tmux, это работает. Если я использую emacs только в терминале, он тоже работает.
Я использовал следующий код в файле tmux.conf:
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[0 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[1 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[2 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[3 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[4 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[5 q"
set-option -ga terminal-overrides ",tmux-256color:Se=\\E[6 q"
А внутри Emacs:
;; Change the cursor shape according to the mode, in VTE based terminals
(add-hook 'overwrite-mode-hook
(lambda ()
(if overwrite-mode (send-string-to-terminal "\033[3 q")
(send-string-to-terminal "\033[5 q"))
)
)
(add-hook 'read-only-mode-hook
(lambda ()
(if buffer-read-only (send-string-to-terminal "\033[2 q")
(send-string-to-terminal "\033[5 q"))
)
)
Пока все работает так, как ожидалось. Когда я переключаюсь в режим перезаписи, форма курсора меняется на терминал. Однако, если я запускаю tmux на экране, он больше не работает.
Можете ли вы сказать мне, что я должен добавить к экрану - или конфигурации tmux, чтобы это работало.
Спасибо.
- Мне нужно удаленно подключиться к нескольким серверам одновременно в одном терминале, поэтому наиболее практичным вариантом является внутренний экран ant tmux. Тем более что на каждом из удаленных серверов работает tmux ...