有更好的Windows控制台窗口吗?

316

我发现在Windows上使用命令行非常令人沮丧,主要是因为与Linux和OS X上的终端应用程序(如“rxvt”,“xterm”或“Terminal”)相比,控制台窗口难以使用。主要投诉如下:

  1. 没有标准的复制/粘贴功能。您必须打开“标记”模式,并且只能从由(小)左侧角按钮触发的多级弹出窗口中使用。然后需要从同一菜单中调用复制和粘贴

  2. 无法通过拖动任意调整窗口大小,每次要调整窗口大小都需要设置首选项(回到多级弹出窗口)

  3. 只有在水平滚动条进入画面之前才能使窗口尽可能大。水平滚动条很烦人。

  4. 使用cmd.exe shell时,无法使用\\netpath符号(UNC?)导航到文件夹,您需要映射网络驱动器。当在多台计算机上进行工作时,这很麻烦,因为它们将具有不同的驱动器映射

是否有任何技巧或应用程序(付费或免费)可以解决这些问题?


10
在Unix系统上,命令行 shell 现在通常是 bash,终端应用程序是 xtermgnome-terminal 等等,因此我很难将它们视为本质上相同的东西。 - tzot
2
就像ΤΖΩΤΖΙΟΥ所说的那样,实际上情况正好相反。Windows拥有一个可执行文件cmd.exe,在其中集成了其“终端窗口”和Shell。而类Unix操作系统则将Shell(通常为bashdashshcshkshzsh等)和终端模拟器(如gnome-terminalkonsolexterm等)分开使用。 - Delan Azabani
5
不完全正确。"cmd.exe" 应用程序是一个命令行壳程序,相当于 bash 或其他壳程序。"控制台窗口" 内置于 Windows 中,并具有特殊属性。如果需要,您可以使用替代命令壳程序,例如 PowerShell、4NT,或者即使是 command.com。 - Mark
10
许多人不知道命令行(cmd,command.com,powershell,4nt,bash等)和Windows提供的控制台窗口之间的区别,这对于通常具有极高知识水平的本地人口来说是令人惊讶且令人不安的。 - Mark
2
请参考这个SuperUser关于替换Windows控制台的问题(尽管它的标题可能会让你产生误解)。 - JdeBP
显示剩余8条评论
15个回答

290

抱歉自我推销,我是另一个控制台仿真器的作者,这里没有提到。

ConEmu 是一个开源的控制台仿真器,带有选项卡功能,可将多个控制台和简单的GUI应用程序表示为一个可自定义的GUI窗口。

最初,该程序是设计用于与Far Manager(我最喜欢的shell替代品-文件和归档管理、命令历史记录和自动完成、强大的编辑器)一起工作。但是 ConEmu 可以与任何其他控制台应用程序或简单的GUI工具(例如 PuTTY)一起使用。ConEmu 是一个活跃的项目,欢迎建议。

从长列表中摘录一段:

  • 最新版本的 ConEmu 可以设置自己为 Windows 的默认终端 (参考链接)
  • 使用系统中安装的任何字体,或复制到程序文件夹中的字体 (ttf, otf, fon, bdf)
  • 以管理员身份运行所选标签(Vista+)或选择的用户
  • Windows 7任务列表和任务栏进度
  • DosBox的集成 (在64位系统中运行DOS应用程序很有用)
  • 平滑的调整大小,最大化和全屏窗口模式
  • 滚动条默认情况下被隐藏,可以通过鼠标悬停或设置中的复选框显示
  • 可选应用程序的设置 (例如 调色板)
  • 用户友好的文本和块选择(从键盘或鼠标),复制、粘贴、在控制台中进行文本搜索
  • ANSI X3.64和Xterm 256色

Far Manager 用户将获得外壳风格的拖放、面板缩略图和平铺、编辑器和查看器的标签页,真实颜色和字体样式 (斜体/粗体/下划线)。

PS:Far Manager 支持 UNC 路径(\\server\share\...)


24
对ConEmu给予赞赏。今天刚发现它,到目前为止印象非常好。之前一直使用Console2,但这看起来会成为我的新控制台首选。+1 - Xanthalas
19
作为一名长期使用Console 2的用户,最近我转而使用ConEmu,并且没有回头看。它比以前任何一个控制台模拟器都要好得多,简直难以置信。此外,它正在迅速发展(感谢Maximus!),有很多令人兴奋的新功能不断推出。如果你还没有尝试过这个软件,请立即行动。我毫不犹豫地将其推荐为Windows上最好的控制台模拟器。 - Charles Roper
8
新用户的点赞又加一。这是一个为开发者设计的控制台,由开发者打造。每当我想“如果能做到______就好了”的时候,它似乎总有一个选项可以实现。非常感谢你们修复了Windows中一个如此糟糕的控制台体验。 - drharris
@Maximus 当我尝试在Python中使用ConEmu时,我注意到将Tab键绑定到readline自动完成不再起作用了?有什么建议可以恢复这个功能吗? - Fnord
@Maximus,算了,自动完成选项卡在我刚运行的一个CLI示例中确实有效...一定是我的脚本中有些东西搞砸了。ConEmu太棒了! - Fnord
显示剩余3条评论

100

试试Console 2

Console是一个增强Windows控制台窗口的工具。 Console的特点包括:多个选项卡,类似于文本编辑器的文本选择,不同的背景类型,透明度和颜色键透明度,可配置字体,不同的窗口样式。


我正在使用Vista和Console 2(以及1.5),经常崩溃。 - klew
2
这在我的64位XP系统下非常有效。我同时在cmd.exe和Cygwin bash中使用它。 - Marius
2
你知道我怎么能让控制台在我右键单击的目录中打开吗?在Win7中,您可以在目录上按Shift + 右键单击,然后选择“在此处打开命令行”,但似乎无法将该程序更改为Console2。 - Chii
3
@Chii:这当然是可以实现的(例如,Git for Windows具有“Git Bash here”右键单击选项)。我不确定具体如何操作,但这是一个很好的问题,可以在http://superuser.com上提问。 - Greg Hewgill

35

Take Command。这个软件已经存在很长时间了(曾名为4DOS)。我在Windows NT 3.5(!)上使用过它,并且非常喜欢。

Cygwin 可以在Windows上运行X,因此您可以启动xterm或其他终端应用程序,并获得使用UNIX shell的好处。


12
我并不想寻找不同的shell解释器,我所讨厌的是应用程序本身。Cygwin也存在相同的问题,我有一种印象认为Windows PowerShell也会有这些问题,这种印象是否正确? - Alana Storm
1
刚刚重新读了我的回复,任何厌恶都是针对Windows而不是你提供的帮助 :) - Alana Storm
3
我理解您说的“command shell host”是指“控制台窗口”。控制台窗口是一种特殊类型的窗口,与cmd.exe、PowerShell或其他任何东西无关。 - Mark
4
@Alan:你不喜欢的并不是应用程序本身。 这里的“应用程序”是“cmd.exe”,“powershell.exe”或“bash.exe”等。 你不喜欢的是Windows提供的控制台窗口。这是完全不同的事情。关于你的回答,“Take Command”可以替换掉你的控制台窗口,而PowerShell是一个命令解释器。它们执行完全不同的任务。 - Mark
1
@jsplaine 我完全同意!Windows需要提供更好的默认工具。那个默认的命令提示符窗口真是让人尴尬。我真的希望在Windows上有一个像样的guake端口。 - Ryan R.
显示剩余2条评论

16
  1. 打开快速编辑模式(但选择仍然是矩形而不是换行)
  2. 通过拖动调整大小对我有效
  3. 您可以更改缓冲区大小,这将影响滚动条何时出现
  4. pushd \\server\share

即使使用了这些方法,cmd.exe 也不是一个很好的控制台。请参见所有其他回答以及早期的 stackoverflow 问题。来自 sourceforge 的“Console”项目看起来非常不错。


2
调整大小超过80个字符无效。 - Jared Updike
2
我纠正了:您必须通过编辑Cmd.exe或Git Bash等快捷方式来预先调整窗口大小。这样做以及启用“快速编辑模式”似乎可以解决我在内置Windows终端中遇到的许多问题。 - Jared Updike
1
+1 for pushd。这将节省我一些时间! - P Daddy

8

Console

根据文档:

注意:Console不是一个shell。 因此,它不实现像命令行自动完成、语法着色、命令历史等shell功能。

Console只是您选择的shell(cmd.exe、4NT、bash等)的好看的前端。 其他命令行工具也可以作为Console的“shell”使用。

作为编程shell,您可以使用ipython


7
我也多年以来在Windows上遇到这些问题,但最近我找到了这个项目: Console 它仍然需要使用“标记模式”进行复制/粘贴,但至少可以通过右键上下文菜单访问(因此您不需要将鼠标移动到左上角,然后再次移动到要选择的文本)。
UNC路径不受cmd.exe支持,但它们受PowerShell支持。 (Console可以配置为使用任何shell,包括cmd.exe和PowerShell)

7

5

我个人使用Mintty。因此我使用Cygwin(就我所知道的,它只支持这种shell)。

顺便说一下,还有一个问题:Windows上更好的命令,我发现了。


mintty 真是太棒了。它甚至支持鼠标高亮和中键复制粘贴的 X 风格。 - dotancohen

3

使用 Gow.exe ..

这将使您的DOS提示符变为Linux终端...

否则

使用 ZOC.exe...它是试用期终端...

否则

安装Git .. 它提供了一个bash控制台,您可以部分地使用unix命令。


3
我认为你会喜欢PowerCMD,它可以同时工作4个命令窗口。此外,你还可以在PowerCMD中使用许多额外的命令。 PowerCMD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接