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

wso*_*son 23 windows console powershell command-line cygwin

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

我在Cygwin,CMD和PowerShell中看到过这种行为.

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

这是Windows中的固有问题吗?某处设置?是否有其他控制台没有这个问题?

ps - 如果你认为这与非编程相关,请参阅有关编程工具的其他问题,例如,几乎所有标记为"eclipse"的内容都涉及如何使用IDE而不是编程.

Max*_*mus 17

我认为有两种方式.

1)远程管理器是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,an ...

会话之间将保留历史记录,您可以通过Alt+F8Ctrl+Alt+F(将历史记录切换到过滤模式)来访问它.

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

远3.0在SQLite数据库中存储历史记录,并且可以是可移植的.

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

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

  • GNU的Readline库中强大的类似Bash的行编辑.阅读Readline的键盘快捷键了解更多信息.
  • 优越的路径完成(TAB).
  • 从剪贴板粘贴(Ctrl-V).
  • 支持完成可执行文件/命令和环境变量.
  • 撤消/重做(Ctrl-_Ctrl-X,Ctrl-U)
  • 改进了命令行历史记录
    • 坚持各会议.
    • 可搜索(Ctrl-RCtrl-S).
    • 历史扩展(例如!!,!和!$).
  • 使用Lua完成脚本编写.

这似乎是一个年轻但正在萌芽的项目,所以我创建了一个在我的控制台模拟器中使用它的选项.

  • 为什么有这么多赞成票?这是很好的信息,但没有回答实际问题(即用户可能点击了“滚动锁定”)。 (2认同)

Ste*_*ham 5

在Windows"DOS框"中有一个历史缓冲区的最大大小 - 左上角图标,右键单击,选择属性,您将看到命令历史记录的默认缓冲区大小为50.

  • 向上箭头根本不再调用任何项目。 (2认同)

mac*_*llt 5

检查您的Scroll Lock键。哦!我不小心碰到了我的,所以向上和向下箭头只是滚动窗口。