如果喜欢使用终端应用的朋友, 肯定存在一个需求, 就是在终端界面上显示图片. 可能有时候需要显示一个本地磁盘的图片, 也有可能在使用 w3m
时需要显示网页的图片. 现在我们就基于这两个点, 如何实现在 osx 进行显示图片.
终端显示本地磁盘图片
viu 命令行客户端
viu 是一个很好用的终端图片显示工具, 兼容多种终端协议, 比如 iterm2
和 kitty
, 在这些终端下可以显示出全真色的图片. 对于 tmux
来说, 只能支持基于 ASCII 的 half block
图片(基于字符效果不太好).
osx 下安装:
brew install viu
安装时间可能会比较久, 因为 viu
工具是基于 rust
语言开发, 还需要安装 rust
相关的依赖库. 安装完成以后, 可以使用如下命令显示图片.
# 显示单张图片
viu xxx.png何
# 以设定的宽显示图片
viu -w 80 xxx.png
需要注意的是, viu 直接在 iterm2
和 kitty
的命令行终端下, 显示效果比较好, 因为使用了终端的图片协议, 但在 tmux
下会 fallback
到 half block
的方式显示.
kitty 下的 icat
如果你是使用 kitty
的终端, 可以直接使用终端本身的图片命令行 icat
(不支持 iterm 或 tmux). 由于 icat
依赖 imagemagick
库, 依赖安装时间也会比较久. 安装命令如下:
brew install imagemagick
安装完成后, 就可以使用 kitty +kitten icat
命令显示图片了, 由于命令比较长, 可以自己的shell环境中 alias
一下别名.
# 如果 kitty 命令没有加入到path环境变量中, 需要使用实际的kitty命令的路径
alias icat="/Applications/kitty.app/Contents/MacOS/kitty +kitten icat"
W3M 终端浏览器显示图片
w3m 是一款传统的基于终端的文本浏览器, 可以用于终端下简单的网页浏览. 如果使用在 osx 下使用 brew 进行安装的 w3m 版本, 默认会不支持图片的浏览, 并且安装的版本也特别老. 所以我们要基于最新的源码进行编译.
基于源码编译我也喜欢使用 brew 进行管理, 这里介绍一下如何使用 brew 进行 w3m 的源码编译.
-
进入到本地 brew-core 缓存目录.
cd $(brew --repository homebrew/homebrew-core)
-
复制
w3m.rb
文件到个人下载目录.cp Formula