Як я можу змусити команди виглядати жирним шрифтом у zsh?


18

Я налаштував свою команду bash, щоб усі команди, які я вводять, відображалися жирним шрифтом, а вихід команд відображався у звичайній вазі:

введіть тут опис зображення

Я зробив це, додавши \e[01mв кінці своєї PS1змінної, щоб увімкнути жирний шрифт, і використовуючи trap DEBUGдля його вимкнення:

trap 'printf "\e[0m" "$_"' DEBUG

Таким чином, \e[0mдрукується перед виконанням кожної команди, і я отримую нормальну вагу шрифту у висновку.

Як би я міг досягти такого ж ефекту zsh?

Відповіді:


13

Старомодним способом було користуватися POSTEDIT

 POSTEDIT=$'\e[0m'

(і, до речі, це не баш, не використовуйте пастку DEBUG для імітації preexec: zsh є звідки ), але оскільки zsh 4.3.11 ви можете використовувати засоби виділення синтаксису командного рядка . Нехай ваша швидка турбота буде лише про ваш підказку і налаштування

zle_highlight=(default:bold)

7

Що ви хочете, це функція гачка preexec :

preexec() { printf "\e[0m"; }

Потім перед виконанням кожної команди preexecбуде запущено скидання шрифту до нормального.

Отже, щоб отримати те саме запит, який ви показуєте у своєму запитанні, додайте ці рядки до свого ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

Це правильна річ, що використовується замість пастки DEBUG, але не є правильним способом зробити командний рядок жирним.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.