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, cnormoder civisZeichenfolge (z tput cvvis). Die entsprechenden Termcap- Einträge sind vs, veund 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 rs1Reihenfolge (Grundeinstellung) zu ändern , z . B. Ersetzen rs1=\Ecdurch 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 $TERMINFOoder ~/.terminfowenn 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 TERMCAPUmgebungsvariable auf den bearbeiteten Wert (beginnend und endend mit :).Einige Terminals und andere Anwendungen bieten Ihnen weitere Optionen:
cursorBlinkRessource auf festgelegt ist trueoder die -bcOption in der Befehlszeile übergeben wird. Die Blinkrate kann über die cursorOnTimeund -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-modeschaltet 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 ~/.terminfodem 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 offist nicht ganz das, wonach gefragt wird, es lässt den Cursor verschwinden ... setterm -blink offscheint vielversprechender, aber es betrifft Text, nicht den eigentlichen Cursor.
setterm -cursor off; setterm -cursor onfunktioniert 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 gettyZeilen in Ihrer /etc/inittabDatei eine Option hinzu . Um dies zu tun:
Öffnen Sie die /etc/inittabDatei mit einem Texteditor. Es sollte Linien sein , die enthalten gettyoder agettyoder ähnliches. Ein Beispiel ist:
tty1::respawn:/sbin/getty 38400 tty1
-I "\033[?17;0;255c"Zu jeder gettyZeile hinzufügen . Als Beispiel würde -I "\033[?17;0;255c"die gettyobige 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 gettyProzesse.
Eine bessere Alternative ist zu setzen ESC[?17;0;255cin /etc/issue, anstatt sie zu setzen gettyLinien. Dies zu tun viist wie folgt:
/etc/issuemit vi./etc/issueDatei 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[?8czu /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.