rxvt-unicode (简体中文)

rxvt-unicode 是一个从rxvt分支出的可定制终端。 rxvt-unicode的特性包括:通过Unicode实现的多语言支持,透明度支持,多字体显示,Perl插件支持。

安装

Install rxvt-unicode 包.

配置

浏览 urxvt(1)urxvt(7) 以获得可用的设置。

Xresources

Rxvt-unicode 用命令行参数或者Xresources来控制。命令行参数会覆盖Xresource设置,详情参见X resources

urxvt --help 在标准错误输出 输出所有的 rxvt 设置. 帮助页(man page)有每一个设置的完整描述。

回滚位置

当终端内容过多而无法显示时,旧内容会存放到缓冲区。 默认情况下,当shell有新的输出时,会自动跳到最底部。如果你想看以往的输出内容(而不跳到最底部),设置如下 ~/.Xresources:

! 输出时不滚动
URxvt*scrollTtyOutput: false

! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
URxvt*scrollWithBuffer: true

! 按键按下时回到最底部
URxvt*scrollTtyKeypress: true

回滚辅助屏幕

当你滚动一个有辅助屏幕的页面(例如: 不带-X参数的less,禁用滚动条而让这个页面自己处理滚动会更好:这在konsole终端和基于vte的终端都是默认且不可更改的。

在 urxvt 中, 关闭回滚,启用第二屏幕:

URxvt.secondaryScreen: 1
URxvt.secondaryScroll: 0

除了使用鼠标滚轮滚动之外,上述配置正常生效。当您使用鼠标滚轮在“辅助屏幕”中滚动页面,同时在回滚缓冲区中有一些内容。这时,回滚缓冲区会滚动,而不是页面。为了解决这个问题,有必要在rxvt-unicode中引入一个新选项。在AUR中有一个修补过的rxvt-unicode,名为 rxvt-unicode-better-wheel-scrollingAUR。安装后,将以下内容添加到配置文件:

URxvt.secondaryWheel: 1

字体设置方法

URxvt.font: 9x15

等同于:

URxvt.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1

设置粗体

URxvt.font: 9x15bold

等同于:

URxvt.font: -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1

在 可以找到完整的字体(X core font)简称列表(在的某些子目录下也有其他的fonts.alias文件,但因为他们分别来自其他字体包,所以可能包含你实际上未安装的字体)。值得注意的是,这些别名选择的是ISO-8859-1版本的字体,而不是ISO-10646-1 (Unicode)版本、是75 DPI而不是100 DPI版本,因此您最好避免使用它们,而是使用完整的长名称来选择字体。

URxvt.font: xft:monaco:size=10

或者

URxvt.font: xft:monaco:bold:size=10
注意: 如果Xft字体名称中包含连词符(-), 则必须用反斜杠(\)转义两次。这与使用 urxvt 的 -fn参数和fc-list返回的结果不同,其中的反斜杠只出现于一次。

在提交配置之前,在实时终端中测试字体的一个好方法是在终端中打印转义代码,例如:

$ printf '\e]710;%s\007' "xft:Terminus:pixelsize=12"

字体间距

默认情况下,字符之间的距离可能会感觉太宽。间距可以减少一个像素,如:

~/.Xresources
URxvt.letterSpace: -1

这是一些关于urxvt如何计算字体宽度的讨论 。 改变了计算方法, 使字体更紧凑 (通常情况下)。

颜色

rxvt-unicode在编译时就加入了颜色支持。除了默认的前景色和背景色外,rxvt最多可以显示256种颜色(加上高辨识度的粗体/闪烁/下划线和任何组合)。

还可以将前景(foreground)、背景(background)、游标颜色(cursorColor)、cursorColor2、colorBD、colorUL的颜色值指定为数字0-15,作为引用color0-color15的颜色名称的方便快捷方式。详情参见 #Xresources.

打印

默认情况下,当按下时,rxvt-unicode将通过lpr打印出一个屏幕转储。使用或也会在打印输出中包含终端的回滚。根据个人喜好和需要,可以更改或完全禁用此行为。

复制和粘贴

Rxvt-unicode默认使用作为剪切缓冲区。详情参见 Selecting and pasting text

可以通过绑定{{ic|ALT-CTRL-c}和到复制和粘贴来访问。

注意: 选中文本会自动复制到 PRIMARYselection-to-clipboardrxvt-unicode 9.20开始的Perl插件也会拷贝到 CLIPBOARD

如果你想复制到选区,并确保你的选区更新了相同的内容,你可以添加以下内容:

URxvt.perl-ext-common:  ...,clipboard,...

以及

URxvt.clipboard.autocopy: true
URxvt.keysym.M-c: perl:clipboard:copy
URxvt.keysym.M-v: perl:clipboard:paste

参见 Clipboard#Managers.

Perl插件

我们可以通过包含以下行来启用URxvt perl扩展:

 URxvt.perl-ext-common: extension_name_1,extension_name_2,...

请注意:在多个插件名之间不应该有任何的间隔

Clickable URLs

您可以使用matcher扩展使终端中的url可单击。例如,要使用鼠标左键在默认的web浏览器中打开链接,请将以下内容添加到中:

URxvt.perl-ext-common: default,matcher
URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1

rxvt-unicode 9.14 可以使用matcher通过键盘打开和列出最近(目前限制为10个)的url:

URxvt.keysym.C-Delete: perl:matcher:last
URxvt.keysym.M-Delete: perl:matcher:list

匹配的链接可以指定前景或背景色,例如蓝色:

URxvt.matcher.rend.0: Uline Bold fg5

或者使用colorUL设置#RRGGBB颜色。然而,这会将颜色应用到所有下划线的文本,而不是只有URL链接:

URxvt.colorUL: #4682B4

Yankable URLs (no mouse)

此外,你可以在web浏览器中选择和打开url,而无需使用鼠标。 从 official repositories 安装 包,修改你的 。 下面是一个例子:

URxvt.perl-ext: default,url-select
URxvt.keysym.M-u: perl:url-select:select_next
URxvt.url-select.launcher: /usr/bin/xdg-open
URxvt.url-select.underline: true

key commands:

Key描述
Alt+u进入选择模式。您屏幕上的最后一个URL将被选中。您可以重复来向上选择下一个的URL。
k向上选择下一个URL。
j向下选择下一个的URL
Return在浏览器中打开选定的URL并退出选择模式
o在浏览器中打开选定的URL,不退出选择模式
y复制选定的URL并退出选择模式
Esc退出选择模式

Simple tabs

要将选项卡(tabs)添加到urxvt,请将以下内容添加到您的~/.Xresources:

URxvt.perl-ext-common: ...,tabbed,...

使用如下命令控制选项卡(tabs):

Key描述
Shift+Down新建选项卡
Shift+Left转到左边的选项卡
Shift+Right转到右边的选项卡
Ctrl+Left向左移动当前选项卡
Ctrl+Right向右移动当前选项卡
Ctrl+d关闭选项卡

你可以通过如下方式改变标签的颜色:

URxvt.tabbed.tabbar-fg: 2
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg: 3
URxvt.tabbed.tab-bg: 0

全屏

您可以安装AUR包,然后绑定一个键来启用和关闭urxvt全屏。

~/.Xresources
...
URxvt.perl-ext-common: ...,fullscreen,...
URxvt.keysym.F11: perl:fullscreen:switch
...

动态更改字体大小

AUR安装,将它添加到您的Perl扩展~/.Xresources

 URxvt.perl-ext-common:  ...,resize-font,...

默认快捷键是:

  • (or ) 增大字体
  • 减小字体
  • 恢复(reset)字体大小
  • 查看当前字体大小

你也可以改变快捷键, 像这样:

 URxvt.keysym.C-Down:  resize-font:smaller
 URxvt.keysym.C-Up:    resize-font:bigger

要使Ctrl+Shift绑定生效,需要禁用默认绑定(参见讨论):

 URxvt.iso14755: false
 URxvt.iso14755_52: false

禁用Perl插件

如果不使用Perl扩展特性,可以通过完全禁用Perl扩展来提高安全性和速度。

URxvt.perl-ext:
URxvt.perl-ext-common:

故障排除

升级到v9.09后,透明度不生效

rxvt-unicode开发人员删除了很多非标准壁纸设置程序(wallpaper setter)的兼容性代码。使用不兼容的壁纸设置程序会破坏对透明度的支持。建议壁纸设置程序:

  • feh
  • hsetroot
  • esetroot

要使透明真正的起效,请确保注释掉 URxvt.tintColor 和URxvt.inheritPixmap。

远程主机

如果您正在登录到远程主机,在rxvt-unicode下运行文本模式程序时可能会遇到问题。可以通过在远程主机上安装rxvt-unicode或将从您的本地机器复制到您的主机~/.terminfo/r/rxvt-unicode来解决这个问题;rxvt-unicode-256color 也使用相同的方法。

有些远程系统不会自动更改标题,除非您指定TERM=xterm。要修复此问题,请在远程机器上的.bashrc中添加以下代码:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"'

使用 rxvt-unicode 作为 gmrun 终端

与其他一些终端不同,urxvt希望-e的参数是单独给出的,而不是与引号组合在一起。这将导致gmrun出现问题,因为它规定了相反的行为。这可以通过在中gmrun的“Terminal”变量前加上一个“eval”来解决:

Terminal = eval urxvt
TermExec = ${Terminal} -e

(gmrun使用执行命令,因此这里可以理解eval。)eval的副作用是将参数分解-e,就像在Bash中所做的那样,使urxvt能够理解命令。

我的数字键盘行为怪异,产生不同的输出? (e.g. 在vim中)

一些Debian GNU/Linux用户似乎有这个问题,尽管到目前为止还没有具体的细节报告。这可能是由于错误的TERM环境变量设置造成的,尽管关于是否会发生这种情况以及如何发生的细节还不清楚,但TERM=rxvt应该会提供一个兼容的键映射。

然而,使用xmodmap程序(),你可以将你的数字键盘重新映射回来。

1. 使用程序检查数字键盘(numpad)生成的keycode。

  • 启动 程序
  • 按下数字键盘的按键 并且 在 的输出中寻找 ... keycode xxx ...。 例如, numpad 1 在某些键盘中是 "End" 键,所以你得到的keycode是'keycode 87'.

2. 创建或修改你的xmodmap文件,通常是,其中的内容表示你的键码。

带有数字键盘键码的xmodmap文件示例:

3. 在 X 会话启动时载入你的xmodmap文件。

例如, 在 文件中添加:

...
xmodmap ~/.Xmodmap
...

组合键不工作

参见 在终端中启用Alt键.

绘制符号时性能低下

有些程序,如alsamixer和xprop,在某些图形驱动程序上表现不佳,因此重绘非常缓慢。选项“skipBuiltinGlyphs”为或命令行选项-sbg可以修复此错误。一种可能的解决方案是在~/.Xresources中添加以下内容:

URxvt*skipBuiltinGlyphs:    true

非常多的行会导致速度减慢

插件可能是这里的罪魁祸首。它必须在每次行更新时对行匹配regex,如果您有一个很大的值,那么允许非常大的最多行可能会加剧这个问题。

这里有一些简单的解决方法:

  • 减少
  • 关闭 插件

如果这两个选项都不合适,你可以设置超过某个截止点之后禁用URL匹配:

  1. 复制 到 (如果目录不存在则创建)
  2. 修改 , 找到 行的 部分。它应该在270行。
  3. 那行之后, 插入新行: return () if $row < -100;. 这将在终端顶部后面超过100行的任何行上禁用URL匹配。

参见

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.