有没有更好的Windows命令提示符?

32

由于某些原因,Windows命令提示符在水平方向上调整大小时需要进入属性对话框,而不像其他应用程序一样只需拖动窗口的角落。毫不奇怪,这个特性也出现在P-P-P-Powershell中 - 通过命令提示符替代或Windows黑客技巧有没有办法规避这个问题?


2
这实际上是Windows控制台子系统及其与GUI交互的产物。相关功能(包括命令历史记录和功能键)并不特定于shell,并且即使在自己的控制台应用程序中也可以工作。 Powershell只是从csrss(或Windows的后续版本中的conhost)继承了所有这些功能。 - Joey
可能是有更好的Windows控制台窗口吗?的重复问题。 - Kevin Panko
PowerShell是一种很棒的“语言”,但它受到了与cmd.exe几乎相同可怕的90年代控制台体验的限制。 - Piotr Owsiak
问题本身需要编辑。整个主题是“为什么调整Windows命令提示符控制台的大小很困难,是否有任何替代控制台应用程序?” - HiTechHiTouch
我理解原问题是“是否有替代Windows cmd.exe的程序,可以扩展cmd.exe的功能和处理方式?”换句话说,在Windows上有哪些可用的替代shell?4DOS/4NT JPsoft是我所知道的最古老的一个。 - HiTechHiTouch
如果你在使用 cmd.exe 时最想念的是通过按下 Ctrl + R 获取命令历史记录,我建议安装 CLink。 在 https://superuser.com/questions/1248999#1581575 的底部有一个直接链接到 CLink 安装程序的链接。 - Henke
8个回答

31

2019年更新:

  • 微软已在GithubWindows商店发布了终端应用程序,支持选项卡、面板、亚克力透明度和其他功能。

2016年更新:

  • Windows 10的默认conhost UI具有更多功能,包括自由调整大小、透明度等(包括cmd和powershell)
  • 我现在使用ConEmu(步骤请参见这里),支持选项卡和分割窗格等多个功能。
  • 其他选择包括Cmder(带有其他内置工具)和ConsoleZ(Console2的分支版本)。
  • Console似乎不再更新。

Console++ 可以实现类似 eTerm 的透明效果,但我无法调整窗口大小。我应该使用 1.5 还是 2.0 版本? - Luke
唔...才5分钟就崩溃了。Beta版于2006年发布,看起来他们已经不再积极开发了。继续寻找。 - Luke
你说得对 - 我正在寻找控制台!你怎么读懂我的想法了? - Claudiu
我尝试过很多,但ConEmu是最好的!它让你更接近Linux控制台。我希望微软能在这个领域有所改进,因为感觉已经十年没有新功能了,而Linux控制台却非常出色! - Piotr Owsiak
哦,顺便提一下,除了安装ConEmu之外,还要安装clink以获得更强大的功能。 ConEmu + clink = 非常强大的组合:D - Piotr Owsiak
显示剩余2条评论

12

我不知道这是否是你想要的:调整 Powershell 控制台窗口大小。如果是,我有一段时间之前得到的方法:只需键入:resize ,然后使用箭头键调整宽度和高度。

##
## Author   : Roman Kuzmin
## Synopsis : Resize console window/buffer using arrow keys
##

function Size($w, $h)
{
    New-Object System.Management.Automation.Host.Size($w, $h)
}

function resize()
{
Write-Host '[Arrows] resize  [Esc] exit ...'
$ErrorActionPreference = 'SilentlyContinue'
for($ui = $Host.UI.RawUI;;) {
    $b = $ui.BufferSize
    $w = $ui.WindowSize
    switch($ui.ReadKey(6).VirtualKeyCode) {
        37 {
            $w = Size ($w.width - 1) $w.height
            $ui.WindowSize = $w
            $ui.BufferSize = Size $w.width $b.height
            break
        }
        39 {
            $w = Size ($w.width + 1) $w.height
            $ui.BufferSize = Size $w.width $b.height
            $ui.WindowSize = $w
            break
        }
        38 {
            $ui.WindowSize = Size $w.width ($w.height - 1)
            break
        }
        40 {
            $w = Size $w.width ($w.height + 1)
            if ($w.height -gt $b.height) {
                $ui.BufferSize = Size $b.width $w.height
            }
            $ui.WindowSize = $w
            break
        }
        27 {
            return
        }
    }
  }
}

@atomizer 我完全同意,这太疯狂了,立即进入我的脚本文件夹。 ;D - mjsr

3

如果您不介意安装cygwin,您可以使用它与xterm或rxvt一起使用。您还可以使用Bash作为shell,而不是cmd.exe,这更加方便。


Cygwin在Windows上的问题在于它仍然由cmd.exe托管,因此Luke提到的调整大小问题仍然存在。 - David Mohundro
3
如果你使用XWindows的非根模式,就不会有这个问题,你可以打开Xterm终端。我已经用了几年了,效果非常好。 - Herms
您也可以在不运行X窗口的情况下使用rxvt。 - Eric Tuttleman

3
这可能不是你想要的,但我解决这个问题的方法是使用cygwin的无根X窗口模式和XTerms。我更喜欢Unix命令行环境而不是Windows环境,而XTerm窗口就像任何其他窗口一样。
至于直接替代方案,快速的谷歌搜索显示以下内容: 我没有尝试过它们,所以我不确定它们是否符合你的要求,但也许值得一试。

2

PowerShell v2.0附带了一个交互式shell,称为PowerShell集成脚本环境(ISE)。它不是十分出色,但通常比控制台子系统好。

优点

  • 包括PowerShell脚本编辑器,带有语法高亮。

  • 在提示符处作为类型的语法高亮。

  • 我可以拥有多个PowerShell会话,包括远程会话,作为选项卡。

  • ISE是PowerShell感知的,因此我可以使用PowerShell来操作和扩展它。例如,请参见"IsePack",它添加了许多功能,包括复制为HTML。

  • 可以轻松缩放文本。

  • 传统的Windows调整大小、游标导航、选择、复制、粘贴、字体等。

缺点

  • 交互式控制台应用程序会阻塞等待输入,从而挂起。

  • 检测其标准IO是否被重定向的控制台应用程序将认为已经重定向,并因此表现出异常行为。最糟糕的是TFS的tf.exe。例如,'tf submit'将提交而不提示,即使提示是GUI而不是CLI。

  • 开箱即用的功能集有限。显然,他们希望制作一个更丰富的PowerShell IDE,但没有实现。


2
事实上已经过去了很久,但在此期间情况有所改善。 ConEmu 是高度可配置的,可以水平和垂直调整大小。它有一些奇怪的(至少对我来说)行为,即随着窗口大小的调整而调整字体大小。这里有一些讨论 here。Scott Hanselman也写过它,包括与FarManager的集成。

0
你可以考虑安装FAR。它是一个优秀的文本模式文件管理器,还有更多功能。它也可以通过拖动窗口的角来调整大小 :)

0
如果您设置了属性“布局/屏幕缓冲区大小/宽度”,然后在提示时选择“修改启动此窗口的快捷方式”,它将记住缓冲区宽度。然后,当您启动另一个命令提示符时,它将是原始的80个字符宽度,但现在您可以将其拉伸到您设置的缓冲区宽度。

命令提示符不会在当前窗口宽度处换行,而只会在缓冲区宽度处换行。因此,如果您将缓冲区宽度设置为120,但窗口只有80个字符宽度,则行将在120处换行,您必须滚动才能阅读80个字符以外的内容。


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