微信号:gh_8590062d6d9b

介绍:原创/翻译的编程小知识, 目标是每篇文章只需一分钟时间阅读, 利用碎片时间学习技术

让你的 man 变得更漂亮

2016-08-30 18:59 Yu Hao

是否已经习惯了素颜的 man 命令呢?


只需要简单的设置, 就可以改造它成为这个样子:


是不是看上去漂亮许多呢?

配置方法跟我来。

第一步, 把下面的代码放在你的 bash 的配置中(对于 Linux 用户, 通常为 ~/.bashrc)

man() {     
  env \         
    LESS_TERMCAP_mb=$'\e[1;31m' \
   LESS_TERMCAP_md=$'\e[1;31m' \
   LESS_TERMCAP_me=$'\e[0m' \
   LESS_TERMCAP_se=$'\e[0m' \
   LESS_TERMCAP_so=$'\e[1;44;33m' \
   LESS_TERMCAP_ue=$'\e[0m' \
   LESS_TERMCAP_us=$'\e[1;32m' \
     man "$@"
}

第二步, 没有了。 配置就是这样简单。

那么, 上面的代码是如何实现魔法的呢?

简单的说, 它使得 bash 在调用 man 命令的时候, 先设置了一系列的环境量。 这一系列环境量配置了 less 命令的显示。

less 是什么呢? 它是个 pager (翻页器, 不是传呼机哦), man 就是调用它来翻页的。 less 取代了更早的 pager 命令 more。(咦? less 和 more 意思不是相反么? 其实人家取的是 less is more 的谚语)

这配置 less 的环境量, 名字比较怪, TERMCAP 是终端配置的数据库,后面不同的字符呢, mb 代表 start blinking,  me 代表 start bold mode, 等等, 具体的含义可以查看手册。

这些环境量的值, 长得就更奇怪了, 比如 \e[1;31m, 它们是一种特殊的转义字符, 叫做 ANSI escape code, 代表各种颜色。 以前发过的 如何在命令行输出带颜色的文字 曾经介绍过。

如果man 命令看作男人的话, 那么, 去给他画个彩妆吧。




 
一分钟的编程知识 更多文章 复制特定文件及其相关文件结构 在 Lua 中实现 sleep 函数 为什么在 Stack Overflow 回答问题 快讯: Vim 8.0 已发布! 为什么 Vim 使用 hjkl 作方向键
猜您喜欢 初试ReactNative 英语流利说基础数据平台 丰厚奖金,海量订单——“天猫·喵葩”互动创意大赛报名启动 【程序员发力】世界最大黑客组织Anonymous向恐怖组织ISIS宣战 未来产品经理的工资是程序员的5倍