передача escape-последовательностей из tmux на экран gnu - PullRequest
0 голосов
/ 04 ноября 2018

Из практических соображений я использую 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 ...
...