这似乎是随机的:经过一段时间/我在 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-X、Ctrl-U)
- 改进了命令行历史记录。
- 跨 session 持续存在。
- 可搜索(Ctrl-R 和 Ctrl-S)。
- 历史扩展(例如 !!、! 和 !$)。
- 使用 Lua 编写脚本完成。
这似乎是一个年轻但崭露头角的项目,所以我在我的 Console Emulator 中创建了一个使用它的选项。 .
关于windows - 为什么 Windows 控制台会在一段时间后丢失命令行历史记录(向上箭头)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241453/