博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定制以及彩色化自己的 Mac OS X 终端
阅读量:4216 次
发布时间:2019-05-26

本文共 1544 字,大约阅读时间需要 5 分钟。

原文地址:

虽然没有亲自体验过 Linux 系统下的终端程序,不过经常关注一些IT大牛的博客,看他们的代码截屏觉得各种华丽。于是就也想让自己的Mac终端看起来能「上的了台面」些。比如 ls 针对不同类型文件名称着色啊,内置 Vim 代码高亮啊之类等等。

以下是我定制完的 Mac终端 样子:

201307301

201307302

接下来开始讲解定制步骤

首先是自定义提示符:

Mac OS X 终端的默认提示符感觉又长又难辨认,那么是不是可以跟「网址缩短」服务那样,将默认的提示符改的简洁些呢。答案当然是 So easy!

在终端内输入:

1
nano ~/.bash_profile

在里面添加:

1
export
PS1=
"\u@\h:\w $ "

然后保存退出,重新打开终端,确认提示符以及改变。

如果想提示符带颜色,可以参考  和  。

或者直接将 “\u@\h:\w $ “ 部分替换成:

1
"\[\e[0;31m\]\u@\h\[\e[0;33m\]:\[\e[1;34m\]\w \[\e[1;37m\]$ \[\e[m\]"

保存后退出终端接着重新打开看看效果。

彩色化 ls 的输出结果

大致 Google 了下其他人的修改方法,发现使用 GNU Coreutils 替换 Mac 的 ls 命令的方式用的比较多,于是整理分享一下。

安装与配置 Coreutils:

通过 Homebrew 安装 Coreutils

1
brew
install
xz coreutils

注:Coreutils并不依赖于xz,但它的源码是用xz格式压缩的,安装xz才能解压。

生成颜色定义文件

1
gdircolors --print-database > ~/.dir_colors

在 ~/.bash_profile 配置文件中加入以下代码

1
2
3
4
5
if
brew list |
grep
coreutils >
/dev/null
;
then
  
PATH=
"$(brew --prefix coreutils)/libexec/gnubin:$PATH"
  
alias
ls
=
'ls -F --show-control-chars --color=auto'
  
eval
`gdircolors -b $HOME/.dir_colors`
fi

gdircolor 的作用就是设置 ls 命令使用的环境变量 LS_COLORS(BSD是LSCOLORS),我们可以修改 ~/.dir_colors 自定义文件的颜色,此文件中的注释已经包含各种颜色取值的说明。通常不需要另外修改默认定义好的文件颜色了,默认的配置里少了一些「码农专用」的文件颜色,我们可以补充进去:

# source code files

.pl 00;33
.PL 00;33
.pm 00;33
.tt 00;33
.yml 00;33
.sql 00;33
.html 00;33
.css 00;33
.js 00;33
.py 00;33
.html 00;33

最后关闭重新打开终端输入 ls 看下效果。

grep高亮显示关键字

在 ~/.bash_profile 配置文件中加上alias定义。

1
2
3
alias
grep
=
'grep --color'
alias
egrep
=
'egrep --color'
alias
fgrep
=
'fgrep --color'

Vim语法高亮

打开终端,输入

1
vim ~/.vimrc

往里头添加一句 syntax on 即可。

或者可以尝试下 Solarized 的 Vim 配色,更可以顺便把终端的皮肤也换成一样的风格。

Solarized 官网: 

转载地址:http://mhsmi.baihongyu.com/

你可能感兴趣的文章
MapReduce Task数目划分
查看>>
ZooKeeper分布式锁
查看>>
3126 Prime Path
查看>>
app自动化测试---ADBInterface驱动安装失败问题:
查看>>
RobotFramework+Eclipse安装步骤
查看>>
测试的分类
查看>>
photoshop cc2019快捷键
查看>>
pycharm2019版本去掉下划线的方法
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
leetcode 13: Roman to Integer
查看>>
a标签中调用js方法
查看>>
js函数中传入的event参数
查看>>
[hive]优化策略
查看>>
c++14现代内存管理
查看>>
右值引用,move语义和完美转发
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>