windows - 为什么 Windows 控制台会在一段时间后丢失命令行历史记录(向上箭头)?

标签 windows command-line powershell console cygwin

这似乎是随机的:经过一段时间/我在 Windows Vista 上使用的任何控制台的使用后,我失去了使用命令行历史记录(或命令缓冲区,如果你愿意......)的能力,并点击向上或向下箭头不再执行任何操作,这意味着历史记录中基本上有 0 个项目可用。

我在 Cygwin、CMD 和 PowerShell 中看到过这种行为。

有时这种行为适用于在控制台内运行的进程——Python、MySQL 客户端等。

这是 Windows 的固有问题吗?某个地方的设置?有没有其他主机没有这个问题?

ps - 如果您认为这与编程无关,请查看有关编程工具的其他问题,例如,几乎所有标记为“eclipse”的内容都涉及如何使用 IDE 而不是为其编程。

最佳答案

我认为有两种方式。

1) Far Manager 是 shell 的不错选择。即使您不需要它的全部功能(文件/存档管理、编辑器、大量插件、宏),您也可以将它用作 cmd、tcc、sh 或任何其他程序、shell 或命令处理器的包装器/执行器.

例如

  • 从 distrib(Far2 或 Far3)获取 3 个文件:far.exe、fareng.lng 和(可选)fareng.hlp
  • 运行“far.exe/w”,按Ctrl+B Ctrl+O
  • 在命令行中输入任何命令:dir、set、notepad、putty 等等...

历史将在 session 之间保留,您可以通过 Alt+F8 访问它(按 Ctrl+Alt+F 将历史切换到过滤模式)。

Far 2.0 在注册表中存储历史记录(和设置)。

Far 3.0 将历史记录存储在 SQLite 数据库中,并且可以移植。

此外,Far 可以自动完成来自历史记录的命令或来自磁盘的文件/路径。还有一个插件(YAC)可以从别名等自动完成...

2) 我最近发现了一个有趣的项目: Clink - 将 Bash 强大的命令行编辑功能引入 Microsoft Windows 的 cmd.exe

  • 来自 GNU 的 Readline 库的强大的类似 Bash 的行编辑。详细了解 Readline 的键盘快捷键。
  • 高级路径完成(TAB)。
  • 从剪贴板粘贴 (Ctrl-V)。
  • 支持完成可执行文件/命令和环境变量。
  • 撤消/重做(Ctrl-_Ctrl-XCtrl-U)
  • 改进了命令行历史记录。
    • 跨 session 持续存在。
    • 可搜索(Ctrl-RCtrl-S)。
    • 历史扩展(例如 !!、! 和 !$)。
  • 使用 Lua 编写脚本完成。

这似乎是一个年轻但崭露头角的项目,所以我在我的 Console Emulator 中创建了一个使用它的选项。 .

关于windows - 为什么 Windows 控制台会在一段时间后丢失命令行历史记录(向上箭头)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241453/

相关文章:

windows - 复选框 - 更改通知

c# - 将 C# 命令行应用程序转换为 Windows 服务

wcf - 将 HttpClient 与 RightScale API 结合使用

json - 调用 REST api 并将生成的 json 数据插入 SQL Server 的最简单方法

java - 在Windows中使用java将sql文件导入mysql数据库时出错

wpf - WPF 应用程序和 Windows 8 的对齐问题

c# - 有人可以建议开发团队和 Beta 测试人员之间进行交流的在线解决方案吗

c# - 在 C# 中以编程方式使用 cmd.exe

android - Android 构建工具是否需要为每个新项目下载 Gradle?

powershell - itext7.7.1.1 无法从 PDFReader 创建 PdfDocument