Функции терминала доступны не для всех терминалов и могут отличаться в зависимости от версии tmux. Я вижу описание, приведенное в tmux 1.6 на Debian 7. Ubuntu 14.04 немного устарела и имеет tmux 1.8 (то же описание).
Пример, приведенный на странице справочника, выглядит следующим образом DECSCUSR
, который поддерживается, xterm
начиная с патча № 252 в 2009 году. См. Последовательности управления XTerm :
CSI Ps SP q Set cursor style (DECSCUSR, VT520). Ps = 0 -> blinking block. Ps = 1 -> blinking block (default). Ps = 2 -> steady block. Ps = 3 -> blinking underline. Ps = 4 -> steady underline. Ps = 5 -> blinking bar (xterm). Ps = 6 -> steady bar (xterm).
Чтобы использовать их, вы должны сделать измененную запись terminfo, используя тик ncurses, например,
infocmp -x >foo vi foo tic -x foo
добавив эту строку (с ведущей вкладкой, как и другие возможности):
Cs=\E[%p\sq, Csr=\E[0\sq,
Однако, проверяя источник для tmux 2.1, он больше не читает эти функции terminfo и был изменен для использования Cs
и Cr
для установки цвета (сделано в более старых версиях с использованием Cc
и Cr
). Более новая версия имеет встроенную логику для распознавания DECSCUSR
без расширения terminfo.
Терминалы на основе VTE (такие как терминал XFCE) могут (в зависимости от версии) реализовать DECSCUSR
, но консоль Linux вряд ли сделает это, поскольку она реализует только подмножество VT220, в то время как DECSCUSR
это от VT520
терминала (надмножество VT220).
Вы увидите различия с другими приложениями, такие как Emacs, потому что DECSCUSR
перекрывают другие функции курсора стиля, такие как мигающая функция курсора, установить или сбросить с cvvis
и cnorm
возможностями от terminfo В течение xterm
:
CSI ? Pm h DEC Private Mode Set (DECSET). Ps = 1 2 -> Start Blinking Cursor (att610).
Однако вы, похоже, хотите изменить внешний вид курсора в консоли Linux (также называемой виртуальной консолью). DECSCUSR
не имеет никакого эффекта там.
Для того, чтобы курсор мигающий блок все время, вы должны изменить возможности курсора внешний вид в описании терминала (ов), которые вы используете. Это civis
(сделать курсор невидимым), cnorm
(сделать курсор «нормальным» видом) и cvvis
(сделать курсор очень видимым):
- Включение обоих
\e[?8c
в запись "linux" скажет программам, таким как emacs, которые используют эту запись, чтобы использовать ваш мигающий курсор. - tmux также читает запись терминала, просматривая
cnorm
иcivis
. - elinks, с другой стороны, жестко запрограммирован, игнорируя базу данных терминала. Быстро прочитав его источник, я не вижу никаких escape-последовательностей, которые сбрасывают терминал или изменяют внешний вид курсора.
Поскольку вы используете tmux
, вам также может потребоваться изменить xterm
(чтобы приложения, работающие внутри, tmux
использовали этот стиль курсора). Но сначала протестируйте без этого: если нужно, вы, вероятно, можете объединить \e[?8c
с существующей cnorm
строкой, так как xterm
игнорирует \e[?8c
.