Cygwin / Windows的最佳terminal环境?

今天我用rxvt使用下面的启动行来运行Cygwin:

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

这给了我一个可resize的原生Windows窗口,比默认的cygwin.bat提供的标准“DOS框”要cygwin.bat

但是,目前的configuration确实有几个问题:

  1. 我不能在terminal窗口中input非ASCII字符(即我使用的半频率,实际上terminal在粘贴时不会接受)如果我粘贴像“bølle”(挪威语为“bulley”)的string,我所得到的就是“blle”。
  2. 我不能呈现UTF-8字符,即使它们被字体支持(即在ISO-8859-1中渲染相同的字符时,它们也只显示),它们只显示为?。

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

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

除了上面提到的问题之外,我对rxvt非常满意,所以如果我find解决方法,我想继续使用它。 但是,如果这些问题不是(很容易)解决的话,Cygwin还有其他什么好的terminal解决scheme吗?

更新

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

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

将以下两行添加到readlineconfiguration文件〜/ .inputrc中

 set convert-meta off set output-meta on 

应该在rxvt和mintty工作。 更多在这里:

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

minTTY也不错。 你可以在cygwin的设置中find它。 支持重新resize,粘贴和透明度。

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

  • 将会话logging到文件,
  • 删除,首页和其他键的字符序列,
  • 窗口颜色和字体。

编辑:可以input你提到的字符。 还提供了UTF-8支持(它必须在configuration中打开)。

我也在使用控制台 。 控制台允许你自定义字体,背景等等,并且还有一个标签界面(如果你一次使用多个terminal窗口,那么这个界面很好)。

为了能够使用非ASCII字符,我把我的.inputrc文件放在我的主目录中:

 set meta-flag on set convert-meta off set output-meta on set completion-ignore-case on 

在写作的时候,四岁的时候,问题的症结已经消失:默认的Cygwinterminal现在接受粘贴和呈现非Ascii字符,没有forms,至less对我来说。 Cygwin的默认terminal现在是mintty,Cygwin默认使用UTF-8。 (例如,/etc/profile.d/lang.sh现在默认设置一个UTF-8字符集编码。)现在有一个64位版本的Cygwin,但是按照http://www.cygwin.com/ml/ cygwin / 2013-09 / msg00029.html ,没有64位端口的rxvt。

即使标题中的问题也不如以前那样重要,因为mintty并不像旧的Windows命令控制台子系统窗口那样繁杂。 不过,我会把我共同维护的项目插入: https : //code.google.com/p/jessies/wiki/Terminator ,这个项目可能是从第一天起为UTF-8编写的,尽pipe它的主要卖点, imo是查找function。

您可能需要设置代码页。

检查您的当前:

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

如果你没有代码页,那么join你的〜/ .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环境variables,您可以有多个项目,每个项目由一个空格分隔。 其他可以使用的项目:{tty binmode title}。

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

一个相关的说明:你也可以使用Cyrwin的mrxvt。 它需要一个X服务器,一个很好的固体/轻量级解决scheme是使用Xming。 我编译mrxvt并安装它 – 并不是很难做到,而且效果很好。

我使用rxvt作为初始窗口,然后通过使用别名命令从rxvt启动mrxvt作为一个独立的进程,然后closuresrxvt。 这使得mrxvt成为自己的父进程,并且没有附加cmd会话。

我做了一个别名来做到这一点:

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

为了方便起见,我创build了一个batch file来启动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 

这个batch file是由一个Windows快捷方式启动的。 这对我来说很好。

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

当我在Windows上开发时,我发现Poderosa是Cygwin的不错select。

用xterm标准Cygwin / X对我来说已经足够了。 安装Cygwin X.org软件包,然后运行脚本C:\cygwin\bin\startxwin.bat (假设默认安装path)。 它会启动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 

我会设置你的国家在Windows(控制面板 – >区域设置 – >最后一个选项卡(控制) – >语言unicode不兼容的语言 – >您的select(挪威))。 重新启动后,启动Start-> Cyqwin-> rxvt-native。 对于俄罗斯它的作品(不编辑.bashrc或其他)。

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

在cygwin的替代terminal仿真器的主题 – 检查出Console2 ; 它具有您需要的所有function。

如果你使用ls与某些arg它显示文件名称好吧,我build议你在/ etc / profile中放置一个ls别名:

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

在WinXP上为msys工作。

rxvt是不能unicode的,所以如果你login到使用UTF-8进行编码的机器上,你将无法正常工作。 你可以使用iso-8859-1 / 15的rxvt,但现在大多数机器是UTF-8。

Cygwin中的rxvt的unicodereplace为urxvt,Cygwin下的包名称为rxvt-unicode-X。 urxvt还具有其他很好的function,例如许多可下载的插件(包括为每个窗口提供多个选项卡的插件),以及一个客户机/服务器体系结构,如果您有多个窗口( urxvtc / urxvtd ), urxvtc使用更less的资源。

您可能还需要确保您的readlinevariables指定您的shell应该通过8位字符,即将其添加到$HOME/.bashrc$HOME/.profile

设置转换元closures
设置输出元
设置input元

您将不得不在$HOME/.Xdefaults设置正确的资源:特别是您需要一个包含所需字符的字体。 urxvt的资源组名是URxvt注意大小写,这很重要!

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

我也推荐设置:

 URxvt * termName:xterm

这个资源决定$TERM环境variables的值。 除非正确设置,否则找不到正确的termcap文件,导致类似less程序以下面的样式发出警告: WARNING: terminal is not fully functional 。 不幸的是,在许多Linux发行版中, rxvt-unicode的默认termName是不知道的,所以如果你经常ssh到远程机器,你会遇到这个问题。 解决方法是将termName设置为更常见的内容(如xterm ),或者将rxvt-unicode的termcap-file上载到所有login的服务器。

由于标题有些误导,search结果在这里给我带来了很多次,我只是回答阅读标题。

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

在类似的emg-2logging中,Lifehacker最近有一篇关于MinTTY的文章,不知道它是否包含你需要的修复。

如果你满足于只运行Cygwin应用程序,那么rxvt应该可以正常工作。 Rxvt应该支持UTF-8。 您是否尝试使用Googlesearch解决scheme?

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

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

这两个问题与我尝试过的所有terminal仿真器(rxvt,xterm,Emacs和其他一些)都是一样的。

除了完整的可重构性之外,rxvt还有哪些function让你感觉Windows控制台窗口没有? 你有没有看过内存使用的差异 – rxvt是一个猪。 我使用rxvt几个星期,并切换回到Windows控制台窗口,没有遗憾。

是的,薄荷似乎更舒适,轻快,但有一个function它没有,和默认(Windows)控制台,这是searchfunction:从默认控制台,你可以search显示在控制台上的string,好玩吗?

到现在为止,我还没有发现任何其他控制台有这个function…我知道,告诉我,我真的不喜欢默认控制台。

我已经使用了几个terminal,如腻子,控制台,rxvt,薄荷,teraterm。 最好的是teraterm。 它是免费的,完全兼容lang和tty,可以通过macros,快捷方式完全configuration,并为Cygwin提供cygterm。

然而,如果你点亮用户,只需使用当天默认值的mintty或rxvt。

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

https://conemu.github.io/