Відповіді:
Це дає вам твердий жовтий блок (не блимає) як курсор:
echo -n -e '\e[?17;14;224c'
Для отримання додаткової інформації ознайомтеся з цими посиланнями: Linuxgazette та EmacsWiki , а також файл /usr/src/linux/Documentation/VGA-softcursor.txt(якщо він є у вашій системі)
echo -e '\033[?16;0;224c'
Існує стандартна послідовність керування, щоб вимкнути миготливий курсор на клемах.
printf '\033[?12l'
Однак багато терміналів не реалізують цей параметр, тому читайте далі.
Існує більш широко реалізований стандартний термінальний параметр для комутації видимості курсору між високою видимістю, нормальною видимістю і невидимістю. Деякі термінали не мають різниці між нормальними та високими, і немає гарантії того, що той чи інший буде мигати чи не буде. У TERMINFO , випускають cvvis, cnormабо civisрядок (наприклад , tput cvvis). Відповідне Termcap запис є vs, veі vi.
Цей параметр не переживе скидання терміналу , тому ви можете виявити, що він не пережив запуск багатьох повноекранних програм. Ви можете подолати цю складність, додавши послідовність зміни конфігурації курсору в рядок скидання терміналу.
infocmp >>~/etc/terminfo.txt. Відредагуйте опис, щоб змінити rs1(основне скидання) послідовності, наприклад замінити rs1=\Ecна rs1=\Ec\E[?12l. У деяких програмах та налаштуваннях вам може знадобитися змінити rs2(повний скидання). Потім складіть опис terminfo з tic ~/etc/terminfo.txt(це пише під каталогом $TERMINFO, або ~/.terminfoякщо він не встановлений)./etc/termcap). Змініть послідовності is(основне скидання) та rs(повне скидання), щоб додати свої настройки, наприклад :is=\Ec\E[?12l:. Встановіть TERMCAPзмінну середовища на відредаговане значення (починаючи з кінця і закінчуючи :).Деякі термінали та інші додатки надають більше можливостей:
cursorBlinkресурс встановленийtrueабо-bcпараметр передається в командному рядку. Швидкість моргання налаштовується черезресурсиcursorOnTimeтаcursorOffTimeресурси.printf '\033[17;127?c'(перший параметр 17 дає вам курсор програмного забезпечення без апаратного курсору, а другий параметр, встановлений у 127, робить його по суті зворотним відео). Дивіться вище щодо скидання терміналів.M-x blink-cursor-mode перемикає курсор блимає. Покладіть (blink-cursor-mode 0)у свій, ~/.emacsщоб вимкнути його. Це глобальне налаштування і не застосовується в текстовому терміналі.Дивіться також сторінку "Ніякої миготіння" Юрі Лінкова (Юрта) про те, як вимкнути миготіння в Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox тощо.
У linux tty ви можете використовувати послідовність евакуації "\e[?48;0;64"або що завгодно, але це не працює в tmux / vim. Tmux / Vim видає команду "cnorm" при запуску, яка за замовчуванням містить a "\e[?0c". Ви можете бачити, що це скасовує ефекти наведених вище параметрів. Вам потрібно змінити cnorm у вищевказаній послідовності для того, щоб програми TUI скинули курсор за вашими перевагами. Більше інформації про це від Gilles, але якщо ви шукаєте швидкого виправлення, спробуйте це:
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
Остання команда генерує нове терміно, під ~/.terminfoяким слід автоматично підбиратись при перезапуску tmux-сервера / vim.
Покладіть
\ 033 [? 17; 0; 127c
до вашої змінної PS1, і ви перестанете блимати постійно.
EG:
експортувати PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c", тодіPS1="\[$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не зовсім те, що просять взагалі, це змушує курсор зникнути ... setterm -blink offздається більш перспективним, але це впливає на текст, а не на власний курсор.
setterm -cursor off; setterm -cursor onпрацює тут, але це неприйнятне рішення
я кладу
echo 0 > /sys/class/graphics/fbcon/cursor_blink
в /etc/rc.local та створив для нього системний сервіс, використовуючи онлайн-інструкції. Однак я помітив, що іноді після завантаження курсор все ще блимає. Було б добре знати правильний спосіб назавжди вимкнути миготливий курсор через sysfs в сучасній системній системі, чи має хто-небудь поради? У деяких дистрибутивах є /etc/sysfs.conf, але я запускаю Arch і не знаходжу цей файл у sysfsutils або в інших місцях.
Як тимчасове виправлення я запустив таку команду
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Деякі експерименти показали, що "255c" в кінці працює краще, ніж "127c", зазначений вище, він створює білий, а не сірий курсор.
Для консолі Linux:
Додати -I "\033[?17;0;255c"варіант для gettyрядків у вашому/etc/inittab файлі. Робити так:
Відкрийте /etc/inittabфайл за допомогою текстового редактора. Там повинні бути рядки , які містять gettyабо agettyабо аналогічний. Приклад:
tty1::respawn:/sbin/getty 38400 tty1
Додайте -I "\033[?17;0;255c"до кожного gettyрядка. Наприклад, після додавання -I "\033[?17;0;255c", gettyрядок вище буде виглядати наступним чином:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Перезавантажте систему або, в іншому випадку, вбийте всіх getty процеси.
Кращою альтернативою є покласти ESC[?17;0;255cв /etc/issue, замість того щоб покласти його gettyліній. Робити це за допомогою viнаступного:
/etc/issueза допомогоюvi ./etc/issue файлу введіть режим вставки.^V(тобто Ctrlv), а потім натисніть Esc. Тепер слід вставити символ втечі.[?17;0;255c.Іншою альтернативою є збереження апаратного курсору (замість використання курсору програмного забезпечення) та припинення миготіння апаратного курсору та перетворення його на блок-курсор. Робити так:
Додайте до /etc/inittab:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Додати ESC[?8cв /etc/issue. Щоб дізнатися, як це зробити, зверніться до "Альтернативи 2".
Однак при такому варіанті курсор не стає яскраво-білим. Я думаю, що це можливо лише за допомогою програмного курсору.
Дотримуючись будь-якої з цих альтернатив, ви отримаєте білий, не блимаючий блоковий курсор.