如何配置Mac Terminal具有彩色ls输出?我正在使用MacOS 10.5
如何配置Mac Terminal具有彩色ls输出?我正在使用MacOS 10.5
Answers:
编辑:
~/.bash_profile
要么
~/.profile
并添加以下行以仅通过启用颜色输出ls
:
export CLICOLOR=1
要自定义显示的颜色,ls
可以选择添加此变量LSCOLORS
。
默认
export LSCOLORS=ExFxCxDxBxegedabagacad
如果您使用的是黑色背景,则可以使用此功能
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
如果您想模仿典型Linux终端的颜色:
export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
将以上内容添加到其中之一后,~/.bash_profile
或者~/.profile
您可以注销/登录或在Shell中获取文件,例如:
$ . ~/.bash_profile
注意:如果需要选择颜色的帮助,可以使用称为LSCOLORS Generator的在线工具。
echo $CLICOLOR
应该给1吗?
你可以加
alias ls='ls -G'
给你~/.bash_profile
彩色ls
输出。
export CLICOLOR=1
以完成相同的操作。
如果您希望使用可读的Mac OS X终端配色方案,则可能需要研究以下内容:
我已经使用了一年多了,如果没有它,我可能无法运行!
这是更新的链接:
您还可以通过添加以下内容来自定义提示色(及其格式):
PS1='\[\e[0;33m\]\h:\W \u\$\[\e[m\] '
到~/.bash_profile
或~/.profile
归档。0;33
普通黄色在哪里,在我的黑色/半透明终端窗口中看起来不错。
这里是颜色及其说明的完整列表:https : //wiki.archlinux.org/index.php/Color_Bash_Prompt
另一种选择是使用GNU ls
,它是'coreutils'程序的一部分。
您可以通过Rudix或Homebrew(brew info coreutils
)或Macports或Fink 获得它。如果您在不同的系统上使用相同的Shell配置文件,或者已经熟悉GNU ls,那么与使用“仅Mac OS X”解决方案相比可能更可取。
只需将以下行添加到~/.bash_profile
文件中:
export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "
这是我的首选颜色。您可以通过更改ANSI颜色代码m
(例如34m
)来自定义提示颜色的每个部分。
ANSI颜色代码列表:
结合所有答案,这就是我所使用的:
COLOR_RED="\033[0;31m"
COLOR_YELLOW="\033[0;33m"
COLOR_GREEN="\033[0;32m"
COLOR_OCHRE="\033[38;5;95m"
COLOR_BLUE="\033[0;34m"
COLOR_WHITE="\033[0;37m"
COLOR_RESET="\033[0m"
#git_color
function git_color {
local git_status="$(git status 2> /dev/null)"
if [[ ! $git_status =~ "working directory clean" ]]; then
echo -e $COLOR_RED
elif [[ $git_status =~ "Your branch is ahead of" ]]; then
echo -e $COLOR_YELLOW
elif [[ $git_status =~ "nothing to commit" ]]; then
echo -e $COLOR_GREEN
else
echo -e $COLOR_OCHRE
fi
}
#git_branch
function git_branch {
local git_status="$(git status 2> /dev/null)"
local on_branch="On branch ([^${IFS}]*)"
local on_commit="HEAD detached at ([^${IFS}]*)"
if [[ $git_status =~ $on_branch ]]; then
local branch=${BASH_REMATCH[1]}
echo "($branch)"
elif [[ $git_status =~ $on_commit ]]; then
local commit=${BASH_REMATCH[1]}
echo "($commit)"
fi
}
PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]'
PS1+="\[\$(git_color)\]" # colors git status
PS1+="\$(git_branch)" # prints current branch
PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ "
export PS1
export LC_ALL=en_US.UTF-8
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
alias ls="ls -Gp"
忘掉所有那些数十年的密码,使用内置的Terminal-> Preferences ... Settings窗格设置默认外观,并根据自己的喜好编辑ANSI颜色。您也可以设置字体。我更喜欢Menlo 12pt。这是任何普通的Joe都能做到的,并且避免了其他海报所建议的所有疯狂的命令行,Unix风格的做事方式。
ls
可以显示彩色的输出,也可以运行一些Unix命令来正确配置它。