Зробіть команду терміналів OS X, яку я набираю BOLD


11

Я хотів би, щоб команди, які я ввів (введення) в термінал, виділялися з усіх результатів.

Наприклад:

imac: ~ buster $ chmod -R gw myfolder
imac: ~ buster $ cd myfolder
imac: myfolder buster $ ls -l
всього 0
drwxr-xr-x 9 root root 306 20 квітня 2010 bin
drwxr-xr-x 7 root admin 238 Apr 20 2010 року включають
drwxr-xr-x 73 root admin 2482 18 травня 17:16 lib
drwxr-xr-x 6 root admin 204 20 квітня 2010 man
imac: myploder buster $ echo Go Giants!
Іди гіганти!

сміливі стрибки на розум, але я б прийняв колір або навіть підкреслив всю лінійку ...

Я впевнений, що є спосіб це зробити, але мені це не очевидно ...

Спасибі!

Відповіді:


9

Відредагуйте ~/.bash_profileабо ~/.bashrc(див. Коментар Жиля нижче) та додайте наступні рядки:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Перемістіть ${BOLD}навколо, щоб зробити частину підказки також сміливою. Якщо підказка не повинна бути кольоровою, вам потрібен ${OFF}префікс PS1, інакше порожні рядки (натискання клавіші Enter, не написавши нічого) зробить наступне підказку жирним (кредити @Jay, ще раз дякую!)

Це додає пастку налагодження для відключення жирного формату, тому це досить хак. Кредити (хоча працює без групового tty на OS X).

Це трохи хак, тому використовуйте його на свій страх і ризик.

Тільки встановити PS1/ PS2підказки жирним шрифтом було б простіше і так само видно:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "

1
Ні ~/.bash_profile, але ~/.bashrc(або обидва, якщо ви не джерело .bashrcз .bash_profile). Ці параметри потрібно встановити для кожного інтерактивного екземпляра bash і .bash_profileчитати лише оболонками для входу.
Жил "ТАК - перестань бути злим"

Дякую, відредагую мою відповідь. У мене немає bashrc, тому я використав те, що там було.
Даніель Бек

2
Я зрозумів це, покласти $ {OFF} на передній панелі : PS1 = "$ {OFF} \ і @ \ ч: \ ш \ $$ {BOLD}"
Jay

1
@Daniel: Не повинно бути підкреслення в ~/.bashrc.
Призупинено до подальшого повідомлення.

1
Якщо я використовую стрілку вгору чотири рази поспіль, щоб пройти історію команд, то перші 3 символи старої команди стають частиною підказки, і немає можливості їх видалити. Я не можу видалити їх за допомогою клавіші зворотної області.
Джей

2

У мене виникли невеликі проблеми з рішеннями тут, використовуючи El Capitan (особливо в iTerm2, але і в простому старому терміналі). У мене виникли два види помилок:

  1. Можливість повністю видалити мою програму bash, просто натиснувши пробіл, а потім назад
  2. Небажані символи потрапляють у мій баш-вихід, наприклад, введення pwdпризведе до

    \[\]/Users/home/Directory

    або в

    \e[0m/Users/home/Directory

Я пропоную наступне рішення, яке насправді просто одне і те ж.

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Хороша робота! Лише кілька незначних відмінностей, але я радий, що ви відкрили для цього спосіб працювати з Ель-Капітан.
DrZoo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.