Cygwin 配置


Vimous · 2015-12-22 · Linux

1.Cygwin

Cygwin 是一个运行在Win下的Linux模拟环境, 可以使用大部分linux shell命令, 基本可以代替Dos命令。 当然Cygwin还有很多不完善的地方: 1. 安装配置十分复杂 2. 中文字符支持的不好 3. bash命令行比较弱...

针对这些问题, 加上网上搜索的资料, 做如下配置, 基本上在Win下能用到一个比较好的Shell了.

2.Bubun

Bubun在Cygwin上加了一层壳, 做了一些常用的配置, 自带GIT!!! 自带oh-my-zsh!!! 参考Bubun的主页, 一键式配置就可以完成.

3.配置

以下是自己摸索的cygwin和zsh在win下的配置, 基本上解决了上述的Cygwin的问题.

3.1 UTF-8乱码

Win下默认的是GBK编码, 输出UTF8的时候会出现乱码, 基本解决思路是通过iconv转换一下.

拿ping举例: 通过iconv命令,输出转码后的内容:

既然这样, 我们可以添加快捷键, 快速使用iconv命令. 在.zshrc中添加:

gbk-utf-8() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != *utf-8 ]] && BUFFER="$BUFFER| iconv -f gbk -t utf-8"
zle end-of-line
}
zle -N gbk-utf-8
#定义快捷键为: ctrl+u
bindkey "^[u" gbk-utf-8

在使用 bindkey 命令时,参数使用对应快捷键的 CSI 序列,如果想知道某种快捷组合键的 CSI 序列,可以有如下两种方法: 1. 先按 Ctrl-V 然后再按组合键,如 Ctrl-A 2. 输入 cat > /dev/null ,之后输入组合键

当然也可以添加新的命令(pings),内容如下:

vim /usr/bin/pings

#!/bin/bash
ping $1 | iconv -f gbk -t utf-8

保存退出chmod 777 /usr/bin/pings

3.2 命令高亮

推荐Zsh下的zsh-syntax-highlighting插件

mkdir /usr/local/share/zsh-syntax-highlighting/
mv zsh-syntax-highlighting.zsh /usr/local/share/zsh-syntax-highlighting/
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

3.3 json格式化

需要pythonpip install pygments

pretty-json() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != *pygmentize* ]] && BUFFER="$BUFFER|python -mjson.tool |pygmentize -l javascript"
zle end-of-line #光标移动到行末
}
zle -N pretty-json
bindkey "^[j" pretty-json
Linux