cygwin中中文输入与输入的打点



作者: libuse 出自: http://www.linuxdiyf.com
想了许多种体式款式要运转我的一个目录下的文件,但是怎样都弗成,十足的路最初都锁在了若安在cygwin下输入我的中文目录名?试了许多网上的体式款式终是不能成行,后来在达人的辅导下,终于掉路归返,真可谓阶梯是曲折的,出路是乌黑的。

其真实cygwin下不能输入中文的缘由是中文字符的最高位都是1,所以被算作控制符处置责罚了。ok,我们现看下怎样做,然后再看看为什么这么做。

怎样做:若是你的用户目录(/home/XXX)下有了: .inputrc , .bashrc/.bash-profile这两个或三个文件,那么恭喜你,你不消树立了,只需做修改就可以了。若是没有,那么费事你要树立这三个文件。在Linux下,我们有多种树立文件的体式款式,但是若是你没有在cygwin下装有vi等编纂器,那么您可以按如下供应的体式款式树立这三个文件:

(1)从/ect/skel中将这三个文件拷贝到你的用户主目录下。

(2)操作notepad来树立这三个文件,但是很主要的一点是,请您在保管时肯定要存成ANSI编码的.txt文件,这一点请肯定要记取。

ok,文件现在是树立了,那么就剩下如何修改文件了:(请按ANSI编码款式编写)

(1)请在.inputrc文件中添加:

set meta-flag on

set convert-meta off

set output-meta on

set input-meta on

set completion-ignore-case on 

(2)请在.bashrc 或.bash-profile文件中添加:

alias ls='ls --show-control-chars --color=auto'

export LESSCHARSET=latin1

修改后请保管成ANSI编码的款式。

ok,年夜功告成了。

现在就看看为什么要这么做,cygwin下不能输入中文的缘由是中文字符的最高位都是1,所以被算作控制符处置责罚了,meta-flag,convert-meta等选项的意思可以参考man bash。大略的说,设置meta-flag on允许从终端输入中文,否则的话终端会过滤掉每个字节的最高位;convert-meta off是设置不将中文字符转化为转义序列,因为中文是两个字节表示的,第一字节的最高位是1开头的,可以能同于某个转义字符;output-meta on就是允许向终端直接输入中文;input-meta on就是允许向终端直接输入中文;set completion-ignore-case on这个可以在 echo A的时辰按了后就能由readline给你补出来abc.txt;–show-control-chars也一样。




版权声明: 原创作品,允许转载,转载时请务必以超链接体式款式标明文章 原始来因 、作者信息和本声明。否则将追究执法责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1973983.html