Cygwin是一款優秀的windows下模擬Linux環境的軟件!
在默認情況下,cygwin的大部分命令是不支持中文的,比如ls,顯示出來的都是問號
但是我們可以通過修改一些設置使它支持中文
首先,進入到用戶主目錄下
$cd ~
然後找到.inputrc,沒有的話就新建
例如:
1.在cygwin/home/[user]/.bash_profile的末尾添加如下代碼
alias ls=’ls –color –show-control-chars’
export LC_ALL=zh_CN.GB23122
export LC_CTYPE=zh_CN.GB2312
export LANG=zh_CN.GB2312
export XMODIFIERS="@im=Chinput"3
stty cs8 -istrip
stty pass8
export LESSCHARSET=latin1
2.修改cygwin/home/[user]/.inputrc中的代碼,去掉相關注釋即可
set meta-flag on
set convert-meta off
set output-meta on
set input-meta on
3.在cygwin/home/[user]/.bashrc末尾添加
上述步驟解決了cygwin下中文顯示亂碼與中文輸入的問題.
網上找了很多解決方法, 把環境設為zh_CN.GB23122, 但是我試了還是不行,然後自己設置en_US.UTF-8, nano編輯文本的時候可以, 但是保存文件名稱為中文卻不行, 最後en_US.UTF-16就OK了, 但是還是有個問題不明白, export LESSCHARSET=latin1 這個不知道是什麼意思, 誰能告訴我。
如果你改變了home的路徑, 請參考以下方法解決:
如果HOME目錄改變則需要編輯cygwin.bat
在bash命令之前加入set HOME=C:\cygwin\home
$ more cygwin.bat
@echo off
C:
chdir C:\cygwin\bin
set HOME=C:\cygwin\home
bash –login -i
aaronvox#aaronvox ~
$ pwd
/home
這樣操作之後的配置文件可能為:
aaronvox#aaronvox ~
$ ls -a
. .. .bash_profile .bashrc .inputc .inputrc
aaronvox#aaronvox ~
$ more .inputc
set meta-flag on
set convert-meta o
set output-meta on
set input-meta on
aaronvox#aaronvox ~
$ more .bash_profile
# base-files version 3.4-2
# WARNING
#
# IF THIS .bash_profile IS MODIFIED IT WILL NOT BE UPDATED BY THE CYGWIN
# SETUP PROGRAM. IT BECOMES YOUR RESPONSIBILITY.
#
# The latest version as installed by the Cygwin Setup program can
# always be found at /etc/defaults/etc/skel/.bash_profile
# ~/.bash_profile: executed by bash for login shells.
# source the system wide bashrc if it exists
if [ -e /etc/bash.bashrc ] ; then
source /etc/bash.bashrc
fi
# source the users bashrc if it exists
if [ -e "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
# Set PATH so it includes user’s private bin if it exists
# if [ -d "${HOME}/bin" ] ; then
# PATH=${HOME}/bin:${PATH}
# fi
# Set MANPATH so it includes users’ private man if it exists
# if [ -d "${HOME}/man" ]; then
# MANPATH=${HOME}/man:${MANPATH}
# fi
# Set INFOPATH so it includes users’ private info if it exists
# if [ -d "${HOME}/info" ]; then
# INFOPATH=${HOME}/info:${INFOPATH}
# fi
簡單的做了以上修改後,就可以支持中文了!