Die Terminalfunktionen sind nicht bei allen Terminals verfügbar und können sich bei den Versionen von tmux unterscheiden. Ich sehe die Beschreibung, die in tmux 1.6 unter Debian 7 zitiert wird. Ubuntu 14.04 ist ein wenig alt und hat tmux 1.8 (gleiche Beschreibung).
Das Beispiel in der Handbuchseite gegeben aussieht DECSCUSR
, die durch unterstützt wird, xterm
beginnend mit Patch # 252 im Jahr 2009. Siehe XTerm- Steuersequenzen :
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).
Um sie zu verwenden, würden Sie einen modifizierten Terminfo-Eintrag mit dem Tic von ncurses vornehmen, z.
infocmp -x >foo vi foo tic -x foo
Hinzufügen dieser Zeile (mit einer führenden Registerkarte, wie bei den anderen Funktionen):
Cs=\E[%p\sq, Csr=\E[0\sq,
Beim Überprüfen der Quelle für tmux 2.1 werden diese terminfo-Funktionen jedoch nicht mehr gelesen, und die Verwendung Cs
und Cr
Einstellung der Farbe wurde geändert (in älteren Versionen mithilfe von Cc
und Cr
). Die neuere Version verfügt über eine integrierte Logik zum Erkennen DECSCUSR
ohne eine terminfo-Erweiterung.
VTE-basierte Terminals (wie beispielsweise XFCE-Terminals) können (je nach Version) implementieren DECSCUSR
, dies ist jedoch für die Linux-Konsole unwahrscheinlich, da sie nur eine Teilmenge des VT220 implementiert, während sie DECSCUSR
von einem VT520
Terminal stammt (eine Obermenge von VT220).
Sie werden Unterschiede zu anderen Anwendungen wie z. B. emacs feststellen, da DECSCUSR
sich andere Cursor-Features wie die blinkende Cursor-Funktion überlappen, die mit den Funktionen cvvis
und cnorm
von terminfo gesetzt oder zurückgesetzt werden xterm
:
CSI ? Pm h DEC Private Mode Set (DECSET). Ps = 1 2 -> Start Blinking Cursor (att610).
Sie möchten jedoch das Aussehen des Cursors in der Linux-Konsole (auch als virtuelle Konsole bezeichnet) ändern. DECSCUSR
hat dort keine Wirkung.
Um den Cursor ein blinkender Block machen alle Zeit, würden Sie die Cursor-Aussehen Fähigkeiten in der Anschlussbeschreibung ändern müssen (s), die Sie verwenden. Dies sind civis
(den Cursor unsichtbar machen), cnorm
(den Cursor "normal" erscheinen lassen) und cvvis
(den Cursor sehr sichtbar machen):
- Wenn Sie beide
\e[?8c
Einträge im Eintrag "linux" vornehmen, werden Programme wie emacs mit diesem Eintrag dazu aufgefordert, Ihren blinkenden Box-Cursor zu verwenden. - tmux liest auch den Terminaleintrag und schaut auf
cnorm
undcivis
. - elinks dagegen sind hartcodiert und ignorieren die Terminaldatenbank. Beim schnellen Lesen der Quelle sehe ich keine Escape-Sequenzen, die das Terminal zurücksetzen oder das Aussehen des Cursors ändern.
Da Sie diese Option verwenden tmux
, müssen Sie möglicherweise auch die Einstellung ändern xterm
(damit die Anwendungen, die in diesem Programm ausgeführt tmux
werden, diesen Cursor-Stil verwenden). Aber testen Sie das erst einmal: Wenn Sie müssen, können Sie die \e[?8c
mit der vorhandenen cnorm
Zeichenfolge kombinieren, da xterm
ignoriert wird \e[?8c
.