Basti's Scratchpad on the Internet

Xterm:不曾接触的风景

Xterm是X系统标配的终端模拟器,原先对这个丑陋的家伙并没有入眼。用它打开后,显示中文一堆乱码,“不堪入目”。前几天便有好奇心,如何解决它的中文显示乱码问题呢?于是,开始了对Xterm的探索之旅。

背景:Xresources文件

Xterm的配置文件就是Xresources,一般为~/.Xresources。Xresources支持:

  • 定义终端颜色
  • 配置终端首选项
  • 字体设置
  • Xcursor游标主题设置
  • xscreensaver屏保主题
  • 其他X应用首选项设置,如xclok……

在使用~/.Xresouces之前,常用~/.Xdefaults这个文件来做设置,不过现在后者已经基本被废弃,大家更常用~/.Xresources。所以,Xterm的配置也要写在~/.Xresources里面。显示管理器登录系统时,会自动读取该文件,以加载配置。当然,我们还需要熟悉下面的两个命令:

xrdb ~/.Xresources #重新加载.Xresouces文件,不保留原先配置
xrdb -merge ~/.Xresources #重新加载.Xresouces文件,保留原先配置

Xterm配置

  1. UTF-8

    让Xterm将输入的数据解释为UTF-8编码: xterm*locale:true

  2. 修复“Alt”按键

    如果你使用“Alt”作为Meta键,需要设置: xterm*metaSendsEscape:true

  3. 滚屏

    可通过鼠标滚轮,或者触摸板边缘上下滚动,或者使用 Shift+PageUp/PageDown 来滚动。

  4. 字体

    我们一开始面对的就是中文乱码,这个特别恼人,所以要在这里解决:

    xterm*faceName: DejaVu Sans Mono:style=Book:antialias=false
    xterm*faceNameDoublesize: WenQuanYi Micro Hei
    xterm*faceSize: 8
    

    上面的“DejaVu Sans Mono”和“WenQuanYi Micro Hei”都可以换成自己喜欢的字体,当然,还可以设置它们是否为粗体(Bold),或者斜体(Italic)等。

  5. 色彩

    Xterm 默认是“白底黑字”,我们可以如下简单的设置:

    xterm*foreground: rgb:b2/b2/b2
    xterm*background: rgb:08/08/08
    
  6. 复制与粘贴

    默认情况,Xterm的选中与粘贴:鼠标高亮选中的文本,就是要复制的文本,在Xterm按下“Shift+Insert”或者按鼠标中键就可以直接粘贴。在X下,高亮选中的文本被复制到了一个叫做“PRIMARY”的缓冲区,如果继续高亮选中其他文本,则用新高亮选中的文本来代替之前保存的文本。当然,与上面的“PRIMARY”相比,还有一种“CLIPBOARD”:使用“Ctrl+c”或“Ctrl+x”来进行文本复制和剪切,然后“Ctrl+v”进行复制,这就用到了“CLIPBOARD”。

    可以使用下面设置共用这两种方式:

    XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
    

    如果我们要启用“Ctrl+v”来复制,可以结合上面设置:

    xterm*VT100.Translations: #override \
           <Btn1Up>: select-end(CLIPBOARD,PRIMARY,CUT_BUFFER0) \n\
           Ctrl <KeyPress> V: insert-selection(CLIPBOARD,PRIMARY,CUT_BUFFER0)
    

相关链接

Other posts
comments powered by Disqus