Antworten:
Dies gibt Ihnen einen durchgehend gelben Block (nicht blinkend) als Cursor:
echo -n -e '\e[?17;14;224c'
Weitere Informationen finden Sie in den folgenden Quellen : Linuxgazette und EmacsWiki sowie in der Datei /usr/src/linux/Documentation/VGA-softcursor.txt
(falls auf Ihrem System vorhanden).
echo -e '\033[?16;0;224c'
Es gibt eine Standardsteuersequenz , um das Blinken des Cursors auf den Terminals auszuschalten.
printf '\033[?12l'
Viele Terminals implementieren diese Einstellung jedoch nicht, lesen Sie weiter.
Es gibt eine weiter verbreitete Standard-Terminaleinstellung zum Umschalten der Cursor-Sichtbarkeit zwischen hoher Sichtbarkeit, normaler Sichtbarkeit und Unsichtbarkeit. Einige Terminals unterscheiden nicht zwischen normal und hoch, und es gibt keine Garantie, dass das eine oder andere blinkt oder nicht. In term emittiert den cvvis
, cnorm
oder civis
Zeichenfolge (z tput cvvis
). Die entsprechenden Termcap- Einträge sind vs
, ve
und vi
.
Diese Einstellung übersteht ein Zurücksetzen des Terminals nicht , sodass Sie möglicherweise feststellen, dass sie das Starten vieler Vollbildanwendungen nicht übersteht. Sie können diese Schwierigkeit überwinden, indem Sie die Änderungssequenz der Cursorkonfiguration zur Rücksetzzeichenfolge Ihres Terminals hinzufügen.
infocmp >>~/etc/terminfo.txt
. Bearbeiten Sie die Beschreibung, um die rs1
Reihenfolge (Grundeinstellung) zu ändern , z . B. Ersetzen rs1=\Ec
durch rs1=\Ec\E[?12l
. Bei einigen Programmen und Einstellungen müssen Sie möglicherweise auch das rs2
(vollständige Zurücksetzen) ändern . Dann kompilieren Sie die terminfo-Beschreibung mit tic ~/etc/terminfo.txt
(schreibt unter das Verzeichnis $TERMINFO
oder ~/.terminfo
wenn nicht gesetzt)./etc/termcap
) aus Ihrer termcap-Datenbank abrufen . Ändern Sie die Sequenzen is
(Basic Reset) und rs
(Full Reset), um Ihre Einstellungen anzufügen, z :is=\Ec\E[?12l:
. Setzen Sie die TERMCAP
Umgebungsvariable auf den bearbeiteten Wert (beginnend und endend mit :
).Einige Terminals und andere Anwendungen bieten Ihnen weitere Optionen:
cursorBlink
Ressource auf festgelegt ist true
oder die -bc
Option in der Befehlszeile übergeben wird. Die Blinkrate kann über die cursorOnTime
und -Ressourcen angepasst werden cursorOffTime
.printf '\033[17;127?c'
(mit dem ersten Parameter 17 erhalten Sie den Softwarecursor ohne Hardwarecursor, und mit dem zweiten Parameter 127 wird das Video im Wesentlichen invertiert). Informationen zum Zurücksetzen der Klemmen finden Sie oben.M-x blink-cursor-mode
schaltet die Cursor blinkt. Setzen (blink-cursor-mode 0)
Sie es ein ~/.emacs
, um es auszuschalten. Dies ist eine globale Einstellung und gilt nicht in einem Textterminal.Siehe auch Juri Linkov (Jurta) 's kein Blinken Seite , wie in Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox und mehr auszuschalten blinken.
In Linux können Sie die Escape-Sequenz verwenden "\e[?48;0;64"
oder was auch immer Sie möchten, aber dies funktioniert nicht in tmux / vim. Tmux / Vim gibt beim Start einen "cnorm" -Befehl aus, der standardmäßig a enthält "\e[?0c"
. Sie können sehen, dass dies die Auswirkungen der obigen Einstellung rückgängig macht. Sie müssen cnorm in die oben angegebene Reihenfolge ändern, damit die TUI-Anwendungen den Cursor auf Ihre Präferenz zurücksetzen können. Weitere Informationen hierzu von Gilles, aber wenn Sie nach einer schnellen Lösung suchen, versuchen Sie Folgendes:
infocmp linux > /tmp/linux-terminfo
# Replace the last escape sequence here with your colors and settings
sed -i 's/cnorm=\\E\[?25h\\E\[?0c/cnorm=\\E[?25h\\E?48;0;64c/' /tmp/linux-terminfo
tic /tmp/linux-terminfo
Der letzte Befehl generiert das neue terminfo, unter ~/.terminfo
dem automatisch abgeholt werden soll, wenn Sie tmux server / vim neu starten.
Stellen
17; 0; 127c
auf deine PS1-Variable und du hörst auf zu blinken.
Z.B:
exportiere PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
dannPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
sudo cp /etc/issue /etc/issue.tmp
setterm -cursor off | sudo tee /etc/issue
cat /etc/issue.tmp | sudo tee --append /etc/issue
sudo rm /etc/issue.tmp
sudo reboot
-cursor off
ist nicht ganz das, wonach gefragt wird, es lässt den Cursor verschwinden ... setterm -blink off
scheint vielversprechender, aber es betrifft Text, nicht den eigentlichen Cursor.
setterm -cursor off; setterm -cursor on
funktioniert hier, aber es ist eine inakzeptable Problemumgehung
ich setze
echo 0 > /sys/class/graphics/fbcon/cursor_blink
in /etc/rc.local und erstellte einen systemd-Dienst dafür unter Verwendung von Online-Anweisungen. Allerdings ist mir aufgefallen, dass der Cursor manchmal nach dem Booten noch blinkt. Es wäre gut zu wissen, wie man das Blinken des Cursors über sysfs auf einem modernen System dauerhaft ausschaltet. Hat jemand irgendwelche Tipps? Einige Distributionen haben /etc/sysfs.conf, aber ich verwende Arch und finde diese Datei nicht in sysfsutils oder anderswo.
Als vorübergehende Korrektur habe ich den folgenden Befehl ausgeführt
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Einige Experimente haben gezeigt, dass der '255c' am Ende besser funktioniert als der oben aufgeführte '127c'. Er erzeugt eher einen weißen als einen grauen Cursor.
Für Linux Konsole:
Fügen Sie -I "\033[?17;0;255c"
den getty
Zeilen in Ihrer /etc/inittab
Datei eine Option hinzu . Um dies zu tun:
Öffnen Sie die /etc/inittab
Datei mit einem Texteditor. Es sollte Linien sein , die enthalten getty
oder agetty
oder ähnliches. Ein Beispiel ist:
tty1::respawn:/sbin/getty 38400 tty1
-I "\033[?17;0;255c"
Zu jeder getty
Zeile hinzufügen . Als Beispiel würde -I "\033[?17;0;255c"
die getty
obige Zeile nach dem Hinzufügen wie folgt aussehen:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Starten Sie das System neu oder beenden Sie alternativ alle getty
Prozesse.
Eine bessere Alternative ist zu setzen ESC[?17;0;255c
in /etc/issue
, anstatt sie zu setzen getty
Linien. Dies zu tun vi
ist wie folgt:
/etc/issue
mit vi
./etc/issue
Datei in den Einfügemodus.^V
(d. H.) Und Ctrlvdann Esc. Das Escape-Zeichen sollte jetzt eingefügt werden.[?17;0;255c
.Eine andere Alternative besteht darin, den Hardware-Cursor zu belassen (anstatt einen Software-Cursor zu verwenden) und das Blinken des Hardware-Cursors zu beenden und ihn zu einem Block-Cursor zu machen. Um dies zu tun:
Fügen Sie Folgendes hinzu zu /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Hinzufügen ESC[?8c
zu /etc/issue
. Anweisungen hierzu finden Sie unter "Alternative 2".
Mit dieser Option wird der Cursor jedoch nicht hellweiß. Ich denke, dies ist nur mit dem Software-Cursor möglich.
Wenn Sie einer dieser Alternativen gefolgt sind, wird ein weißer, nicht blinkender Blockcursor angezeigt.