忘记历史位置

忘记历史位置

目前我使用 Cygwin 的 Bash。使用 Bash,我可以输入以下命令:

$ date
Thu, Apr 23, 2020  7:51:43 PM

$ echo Sunday
Sunday

然后,如果我按两次“向上”键,就会得到预期的结果:

$ date

如果我想取消,我可以按两次向下键,或者按 Ctrl + C。取消后,如果我再次按向上键,它会给我最新的结果,正如预期的那样:

$ echo Sunday

现在与命令提示符进行对比。我可以输入以下命令:

C:\> where calc
C:\Windows\System32\calc.exe

C:\> where notepad
C:\Windows\System32\notepad.exe

然后,如果我按两次“向上”键,就会得到预期的结果:

C:\> where calc

但是如果我想取消,我不能按两次。它只允许你按一次,这样最新的命令就会显示出来:

C:\> where notepad

解决方法是按 Esc。但是,如果按 Up,您将无法再获得最新的结果。由于它不允许您一直向下滚动,因此您会看到以下内容:

C:\> where calc

Ctrl + C 似乎也有同样的问题。我不希望 shell 变得聪明,并记住历史记录中的位置。Windows 是否有一些选项可以更改此行为,使用注册表或其他什么?

答案1

从类 Unix 终端或其端口(如 Cygwin 或 git bash 等)返回时,命令提示符可能会感觉有点僵硬。

我不相信你能对此做任何事情,除了尝试了解它的工作原理并适应其不同的工作流程。

不过,按 F7 可能会在弹出窗口中查看您的历史记录。

您还可以尝试使用键盘上的 Page Up 和 Page Down 分别转到历史记录中的第一个或最后一个命令。

答案2

Windows 命令提示符历史悠久。其大部分功能与 Windows 命令提示符相同。操作系统,其历史可以追溯到四十年前(!)。

微软放弃了进一步开发命令提示符,并打算在未来用新的命令提示符代替它。 Windows 终端。你可以测试一下这个新产品,因为它的历史记录处理肯定会更好。

另一种可能性是使用命令提示符的附加组件来添加类似 Linux 的历史记录处理,Clink 项目

Clink 将原生的 Windows shellcmd.exe与 GNU Readline 库强大的命令行编辑功能相结合,提供了丰富的完成、历史记录和行编辑功能。

命令提示符的另一个众所周知的替代方案是 康埃穆

ConEmu-Maximus5 旨在成为方便、全面、快速和可靠的终端窗口,您可以在其中托管为 WinAPI(cmd、powershell、far)或 Unix PTY(cygwin、msys、wsl bash)开发的任何控制台应用程序。

康德 该项目基于 ConEmu 代码构建,并借助 Clink 进行了增强。其 适用于 Windows 的 Git版本附带了适用于 Windows 的移植版,其中已在 PATH 中准备好许多 Linux 命令。

答案3

较新版本的 PowerShell 没有这个问题,因此我切换了 shell。

相关内容