53

rxvt今天我使用以下启动行运行 Cygwin :

rxvt -bg black -sl 8192 -fg white -sr -g 150x56 -fn "Fixedsys" -e /usr/bin/bash --login -i

这给了我一个可调整大小的原生 Windows 窗口,它比默认cygwin.bat提供的标准“DOS 框”要好得多。

但是,当前配置确实存在几个问题:

  1. 我无法在终端窗口中输入非 ASCII 字符(即 æ、ø、å 和 Æ、Ø、Å,我经常使用它们。事实上,当我将它们粘贴到终端时,终端甚至不会接受它们如果我粘贴一个像“bølle”(挪威语中“bulley”的意思)这样的字符串,我得到的只是“blle”。
  2. 我无法渲染 UTF-8 字符,它们只显示为?,即使它们受字体支持(即在 ISO-8859-1 中渲染相同的字符时,它们显示得很好。)。

我正在运行英语 Windows Vista,语言环境和键盘布局设置为挪威语(ISO-8859-1 字符集?),但我在 Windows 2000 和 XP 上遇到了完全相同的问题。

任何人都知道如何解决这个问题(即配置 rxvt 的更好方法)?

除了上面提到的问题,我很满意rxvt,所以如果我找到解决它们的方法,我想继续使用它。但是,如果问题不是(容易)解决的,那么 Cygwin 是否还有其他好的终端解决方案?

更新

Andy 和 Mattias 提供的解决方案(编辑.inputrc文件)确实解决了输入问题,但输出渲染仍然是一个问题。当我在 ISO-8859-1 中渲染时输出很好,但是当使用 UTF-8 时我只得到 ? 对于非 ASCII 字符。这种行为在rxvt, urxvt(在 Cygwin XFree X Server 下)mintty和 PuttyCyg 之间是一致的。

是否有类似的配置文件可以设置输出编码(即相当于在 Linux 系统上设置输出语言环境)?

4

21 回答 21

37

minTTY 也不错。您可以在 cygwin 的设置中找到它。支持调整大小、粘贴和透明度。

于 2009-03-31T16:41:02.040 回答
12

我目前正在使用 PuttyCyg ( http://code.google.com/p/puttycyg/ )。我不确定它是否包含您需要的修复程序,但它还有其他几个很酷的功能,例如存储到典型 putty 配置文件的配置,可以像这样调用:putty -load mycygwin1。这样的配置文件可以配置如下:

  • 将会话记录到文件中,
  • delete、home 和其他键的字符序列,
  • 窗口颜色和字体。

编辑:可以输入您提到的字符。还提供了 UTF-8 支持(必须在配置中打开)。

于 2009-03-31T16:34:58.590 回答
10

将以下两行添加到 readline 配置文件 ~/.inputrc

set convert-meta off
set output-meta on

应该在 rxvt 和 mintty 中都可以使用。更多在这里:

http://www.gnu.org/software/bash/manual/bashref.html#Readline-Init-File-Syntax

于 2009-04-01T11:07:52.490 回答
8

我也在使用控制台。控制台允许您自定义字体、背景等,并且还有一个选项卡式界面(如果您一次使用多个终端窗口,那就太好了)。

为了能够使用非 ASCII 字符,我在主目录的 .inputrc 文件中添加了以下内容:

set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
于 2009-04-01T11:32:48.733 回答
8

在撰写本文时,已经四岁了,问题的核心已经消失:默认的 Cygwin 终端现在可以在没有形式的情况下粘贴和渲染非 Ascii 字符,至少对我来说是这样。Cygwin 的默认终端现在是 mintty 并且 Cygwin 现在默认使用 UTF-8 运行。(例如,/etc/profile.d/lang.sh 现在默认设置 UTF-8 字符集编码。)现在有 64 位版本的 Cygwin 但是,根据http://www.cygwin.com/ml/ cygwin/2013-09/msg00029.html,没有 rxvt 的 64 位端口。

甚至标题中的问题也没有以前那么重要了,因为 mintty 不像旧的 Windows 命令控制台子系统窗口那样令人讨厌。不过,我将插入我共同维护的项目:https ://github.com/software-jessies-org/jessies/wiki/Terminator ,它是为 UTF-8 编写的,可能从第一天开始,虽然它的主要卖点点,imo,是查找功能。

于 2013-09-23T03:33:08.313 回答
3

您可能需要设置代码页。

检查您的当前:

$ set | grep CYGWIN
CYGWIN='codepage:oem nodosfilewarning'

如果您没有代码页,请添加到您的 ~/.bashrc 文件中:

CYGWIN='codepage:oem nodosfilewarning'

通过快捷方式启动的 Cygwin 批处理 (Cygwin.bat) 文件的内容是:

start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i

请注意,对于 CYGWIN 环境变量,您可以有多个项目,每个项目由一个空格分隔。其他可以使用的项目:{ tty binmode title }。

更多信息可以在这里阅读: http ://www.cygwin.com/cygwin-ug-net/setup-env.html

相关说明:您也可以将 mrxvt 用于 Cygwin。它需要一个 X 服务器,一个不错的可靠/轻量级解决方案是使用 Xming。我编译了 mrxvt 并安装了它——这并不难,而且效果很好。

我使用 rxvt 作为初始窗口,然后使用别名命令将 mrxvt 作为与 rxvt 的单独进程启动,然后关闭 rxvt。这使得 mrxvt 成为自己的父进程,并且没有附加 cmd 会话。

我为此做了一个别名:

alias mrx='export DISPLAY="127.0.0.1:0.0"; $(/usr/local/bin/mrxvt &); echo -e "\033c"'

为方便起见,我创建了一个批处理文件来启动 Xming 和 rxvt:

@echo off
start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i
start C:\Xming\Xming.exe :0 -clipboard -multiwindow -trayicon
exit

此批处理文件由 Windows 快捷方式启动。这对我来说效果很好。

于 2010-05-28T08:48:12.737 回答
2

我一直在使用控制台,它与 Cygwin(以及 PowerShell 和普通的旧 cmd.exe)配合得很好。

于 2009-04-01T11:16:57.913 回答
2

当我在 Windows 上进行开发时,我发现Poderosa是 Cygwin 的一个不错的选择。

于 2009-04-01T11:21:30.507 回答
1

带有 xterm 的标准 Cygwin/X 对我来说已经足够了。安装 Cygwin X.org 包,然后运行脚本C:\cygwin\bin\startxwin.bat(假设默认安装路径)。它将启动 X,然后启动 xterm。

.Xdefaults用这些选项更新了我的选项以获得更好的可用性:

*VT100*scrollbar.width:         14
*VT100*scrollbar.background:    gray60
*VT100*scrollbar.foreground:    rgb:a/5/5
*VT100*scrollbar.borderWidth:   0
*VT100*scrollbar.displayList:\
foreground      gray90;\
lines           1,-1,-1,-1,-1,1;\
foreground      gray60;\
lines           -1,1,1,1,1,-1
*VT100*rightScrollBar: true
*VT100*scrollBar: true
*VT100*scrollLines: 1000
xterm*toolBar: false
于 2009-04-01T13:17:27.017 回答
1

如果您使用带有某些 arg 的 ls,它会显示文件名 好的,我建议您在 /etc/profile 中放置一个 ls 别名:

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

在 WinXP 上的 msys 中为我工作。

于 2010-01-21T07:12:58.740 回答
1

我会在 Windows 中设置您的国家(控制面板-> 区域设置-> 最后一个选项卡(控制)-> unicode 不兼容语言的语言-> 您的选择(挪威语))。重启后开始 Start->Cyqwin->rxvt-native。对于俄语,它可以工作(无需编辑 .bashrc 或其他)。

它甚至(我猜)将软件的输出转换为 utf-8,因为默认编码是 C.UTF-8。要检查它,请键入“echo $LANG”。

于 2010-11-08T10:09:52.943 回答
1

关于 cygwin 的替代终端仿真器的主题-查看Console2;它具有您需要的所有功能。

于 2011-10-04T10:12:39.657 回答
1

rxvt 无法使用 unicode,因此如果您登录使用 UTF-8 进行编码的机器,则无法使其正常工作。您可以将 rxvt 用于 iso-8859-1/15,但现在大多数机器都是 UTF-8。

Cygwin中rxvt的unicode替换是urxvt,Cygwin下的包名是rxvt-unicode-X。urxvt 还具有其他不错的功能,例如许多可下载的插件 - 包括一个为每个窗口提供多个选项卡的插件,以及一个客户端/服务器架构,如果您有很多窗口 ( urxvtc/ urxvtd),它可以使用更少的资源。

您可能还需要确保您的 readline 变量指定您的 shell 应该通过 8 位字符,即将它添加到您的$HOME/.bashrcor $HOME/.profile

关闭转换元
设置输出元
设置输入元

您必须在 中设置正确的资源$HOME/.Xdefaults:特别是您需要一种具有所需字符的字体。urxvt 的资源组名称是URxvt注意大小写,很重要!

URxvt.font: xft:Lucida Console:size=8:style=normal:weight=50:antialias=true:hinting=true:minspace=true
URxvt.boldFont: xft:Lucida Console:size=8:style=bold:weight=100:antialias=true:hinting=true:minspace=true

我还建议设置:

URxvt*termName: xterm

此资源决定$TERM环境变量的值。除非设置正确,否则无法找到正确的 termcap 文件,导致程序喜欢less发出以下样式的警告:WARNING: terminal is not fully functional. 不幸的是,默认的 termNamerxvt-unicode在许多 Linux 发行版中是未知的,所以如果你经常 ssh 到远程机器,你会遇到问题。解决方案是设置termName为更常见的内容(如xterm),或者将 rxvt-unicode 的 termcap 文件上传到您登录的所有服务器。

于 2013-06-28T13:12:27.137 回答
1

由于标题具有某种误导性,并且搜索结果多次将我带到这里,所以我将回答阅读标题。

我喜欢在 Windows 上使用Babun作为 Cygwin 环境,它对我来说几乎是完美的。

于 2016-04-01T12:55:59.830 回答
1

请尝试 ConEmu,它是一个带有选项卡的开源控制台模拟器,它将多个控制台和简单的 GUI 应用程序表示为一个可定制的 GUI 窗口。

https://conemu.github.io/

于 2017-05-12T06:58:12.823 回答
1

xfce4-terminal(可从 Cygwin 获得setup.exe)对我来说是最好的,因为它看起来很棒(易于阅读),如果从 XLaunch(也可从 获得setup.exe)开始,我可以从中启动其他 cygwin GUI 应用程序。出于某种原因,我无法从mintty. 我发现这个线程正在寻找一个不那么丑陋的终端xterm(它可以很好地启动 GUI 应用程序)。最后,我通过在 setup.exe 中的终端搜索找到了最好的(xfce4-terminal)。xfce4-terminal 7 年多来一直是我在 Linux 上的最爱之一。

Guake也可以在 中使用setup.exe,但我必须从另一个终端启动它并单击另一个终端,然后才能使用击键来关闭 Guake。所以,这不像在 Linux 上那么实用。

于 2018-03-31T01:17:55.017 回答
0

与 emg-2 类似,Lifehacker 最近有一篇关于MinTTY的文章,不确定它是否包含您需要的修复程序。

于 2009-03-31T16:40:54.147 回答
0

如果您只满足于运行 Cygwin 应用程序,那么 rxvt 应该可以正常工作。Rxvt 应该支持 UTF-8。您是否尝试在谷歌上搜索解决方案?

如果您还需要运行本机 Windows 应用程序,那么除非您在 Windows 控制台中运行 bash,否则您将不走运。有两个问题我不相信(甚至可以)解决:

  • Ctrl-C 不能正常工作。如果您从 rxvt(或 xterm)内部运行本机 Windows 应用程序,按 Ctrl-C 会给您一个提示,但它不会中断程序,通常让它在后台运行。
  • 终端输出缓冲不起作用。本机 Windows 应用程序的输出不会在打印时显示,而是在某些内部缓冲区已满时显示。

这两个问题与我尝试过的所有终端仿真器(rxvt、xterm、Emacs 和其他一些)相同。

于 2009-03-31T16:46:06.833 回答
0

除了完全可调整大小之外,rxvt 还为您提供了哪些 Windows 控制台窗口没有的功能?您是否查看过内存使用量的差异 - rxvt 是一头猪。我使用 rxvt 几个星期,然后切换回 Windows 控制台窗口,没有遗憾。

于 2009-03-31T16:51:13.420 回答
0

是的,mintty 看起来更舒服、轻便、快速,但是有一个特性它没有,而默认(windows)控制台有,那就是搜索功能: 从默认控制台,你可以搜索控制台上显示的字符串, 乐趣 ?

到目前为止,我还没有发现任何其他控制台具有此功能...我知道,告诉我,我真的不喜欢默认控制台。

于 2012-12-23T05:20:06.853 回答
0

我使用过几个终端,例如 putty、console、rxvt、mintty、teraterm。最好的是teraterm。它是免费的,完全兼容 lang 和 tty,完全可配置宏、快捷方式,并为 Cygwin 提供 cygterm。

但是,如果您是轻量级用户,则只需使用 mintty 或 rxvt,这是目前的默认术语。

于 2013-12-05T13:39:12.730 回答