解决RXVT在ssh时出现的termcap的问题

前一直用的是gnome-terminal,为什么呢?因为rxvt的中文设置一直都没有配好,当设置字体为正黑等中文字体的时候,英文的宽度和中文是一样的。当然网上也找到了用font-face的解决办法,但是还是无法生效,很是郁闷。于是,只好用起gnome-terminal,虽然满点(其实差不了多少@@),但是至少这字体看着爽哪……

话说突然有一天,天上掉下一个林妹妹,哦不对,是我突然发神经又看了一下之前配置的.Xdefaults,突然觉着这字体配置有点怪,定睛一看,居然在字体前面多了一个冒号…… 我大汉,忙删之,然后xrdb ~/.Xdefaults,接着起rxvt,嘿,没事了就,我崩溃哪~ 囧rz

用上rxvt以后,腰也不疼了,脖子也不酸了,可是有一个问题,在ssh到FreeBSD的时候,一上来就给我报了错:

csh: Cannot open /etc/termcap.
csh: using dumb terminal settings.

啥玩儿这是?之前用gnome-terminal的时候没这问题啊 @@ 本想忽略的,结果麻烦的是连用less都要问我这个term可能不支持某些功能,是否要继续的傻问题,真是崩溃。

还好有万能的骨骼,ong了一把发现其实是环境变量TERM的问题。在gnome-terminal里面这个值是xterm,而在rxvt中是rxvt-256color(我装的是ArchLinux的的256色rxvt,一般应该是rxvt吧)。作为一个通用term,FreeBSD中的termcap是有xterm的支持的,但是很不幸的是rxvt是没有的。

知道了原因,解决就简单了。方法很多:

  1. 改名换姓法一:把需要ssh的rxvt的环境变量TERM改成xterm。什么?怎么改?export TERM=xterm喽~
  2. 改名换姓法二:在.Xdefaults中把rxvt的termName设置成xterm,或者在启动rxvt时加上-tn的参数。
  3. 强行插入法:把本机的xterm的termcap文件复制到target机器上的~/.termcap去,然后修改该文件,把有xterm的地方加上rxvt的term名称,比如我的就是rxvt-256color,一般应该是rxvt

不管使用S还是M的办法,都能解决问题,碰到同样问题的童鞋们各取所需吧。

发表评论

评论备注:

  1. 留言时的头像是Gravatar提供的服务。
  2. By submitting a comment here you grant this site a perpetual license to reproduce your words and name/web site in attribution. So, you don't fully own your words, so to speak.