在msys中,ls
之类的命令输出都是gbk的。
感觉略不舒服(主要是因为个人习惯)就决定把它折腾到utf-8去。
注意:首先你需要有一个支持utf-8的终端模拟器比如mintty
。
首先用mingw-get
安装编码转换工具iconv
。
$ mingw-get install msys-iconv
最初准备用alias
处理,
但是发现没法处理管道(ls | iconv
)就放弃alias
了,
转而考虑function
。
代码雏形就是这样了:
function ls(){
/bin/ls "$@" | iconv -f gbk -t utf-8
}
然后经过完善+封装……代码成品:
# convert command output from gbk to utf-8
# usage: convert "command" "base-args" "base-args(for tty only)" "other-args"
function convert(){
local cmd="$1 $2"
if [ -t 1 ]; then
# tty
cmd="$cmd $3"
fi
$cmd "${@:4}" | iconv -f gbk -t utf-8
}
function ls(){
convert "/bin/ls" "--show-control-chars" "--color -C" "$@"
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。