使OS X Terminal命令输入BOLD


11

我想使输入(输入)到终端的命令从所有输出中脱颖而出。

例如:

imac:〜buster $ chmod -R gw myfolder
imac: 〜buster $ cd myfolder
imac:myfolder buster $ ls -l
total 0
drwxr-xr-x 9 root admin 306 Apr 20 2010 bin
drwxr-xr-x 7 root admin 238 Apr 20 2010 include
drwxr-xr-x 73 root admin 2482 May 18 17:16 lib
drwxr-xr-x 6 root admin 204 Apr 20 2010 man
imac:myfolder buster $ echo Go Giants!
去巨人!

大胆的想法让我跳了起来,但我会接受一种颜色,甚至突出整个线条...

我敢肯定有办法做到这一点,但这对我来说并不明显。

谢谢!

Answers:


9

编辑您的~/.bash_profile~/.bashrc(请参见下面的Gilles的评论)并添加以下行:

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,再次感谢!)

这增加了一个调试陷阱,以关闭粗体格式,因此这是一个hack。积分(虽然在OS X上没有group tty即可工作)。

这有点hack,使用它需要您自担风险。

仅将您的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仅由登录shell读取。
吉尔(Gilles)'所以

谢谢,将编辑我的答案。我没有bashrc,所以我用那里的东西。
丹尼尔·贝克

2
我想通了,在前面放了一个$ {OFF}:PS1 =“ $ {OFF} \ u @ \ h:\ w \ $$ {BOLD}”
杰伊,2010年

1
@Daniel:中不应有下划线~/.bashrc
暂停,直到另行通知。

1
如果我连续四次使用向上箭头浏览命令历史记录,那么旧命令的前3个字符将成为提示的一部分,并且无法删除它们。我无法使用Backspace键将其删除。
杰伊

2

使用El Capitan时,这里的解决方案有点麻烦(特别是在iTerm2中,但在普通的老终端中也是如此)。我遇到两种错误:

  1. 只需按空格然后按退格键即可完全删除我的bash提示
  2. 不需要的字符进入我的bash输出,例如输入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

不错的工作!仅有一些细微的差别,但是我很高兴您发现了一种与El Captain一起使用的方法。
DrZoo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.