背景
最近我变得狂热,我在电脑上工作时输入的所有内容都应该与"DRY"兼容。如果在任何情况下我必须多次输入任何内容,我想要某种用户感知的自动完成选项来为我完成一些工作——总是——没有例外。
由于必须在 Windows 下工作,我研究了 GUI 解决方案以使这个疯狂的目标成为现实。
(几乎)最优解
如果您有时间,请打开 Firefox 3.0 并在地址栏中键入几个键。您会注意到它会根据您键入的任何空格分隔的子字符串执行一种增量 自动完成。Firefox 中另一个类似的地方是about:config
URL。
这是次优的,因为我不想只在 Firefox 中使用它。我想在任何地方都使用它。
问题
有没有人知道一个小部件或应用程序除了可以用作通用“到处运行”工具的非常好的增量自动完成之外什么都不做?允许用户: 1) 维护一个或多个“完成候选文件”;2) 选择其中一个文件作为 Firefox 3.0 样式完成的源;3)返回结果(如果用户取消,则返回空白),只做这三件事?
细节
这是它应该如何工作的:
- 第 1 步:用户在他的硬盘驱动器某处保存或更多 csv 文件(或其他易于编辑的格式)
- STEP2:用户创建一个 Windows Script Host 脚本或一个批处理文件(或其他)实例化 FilterAsYouType GUI
- STEP3:用户运行脚本文件,脚本文件实例化 GUI,告诉它使用哪个 CSV 文件作为所有潜在完成的来源
- STEP4:用户要么选择一个完成,提供他自己不在列表中的文本,要么取消而不提供任何内容
- STEP5:当用户完成后,脚本将结果保存到一个变量中并对其进行处理
这是脚本的一些伪代码:
include "GenericTypeaheadWidget";
var gengui = new GenericTypaheadWidget('c:\docs\favorite_foods.csv');
var fave_food = gengui.get_user_input();
if(fave_food != ''){
alert('you chose '+fave_food+'!');
}
基本原理
目标是有一种方法总是能够从任意项目列表中自动完成,即使列表是几千个项目,也不必依赖它被构建到某些 IDE 或独立应用程序中仅接受某些类型的输入或相对于此任务的简单性而言具有过于复杂的 API。
CSV(或文本或 sqlite 数据库)将为我提供一种自行生成“候选人列表”或“历史日志”的方法,然后将这些日志用作可能完成的来源。
免责声明
我已经尝试了几个 GUI“启动器”程序、命令行引擎(如 power-shell 和脚本 shell)、常规的普通旧命令行历史,并具有不同程度的满意度。这些的问题是它们都做了额外的多余的东西,比如搜索目录或内置命令。我只想要我碰巧指向的 CSV 文件中的任何内容。
我想知道是否有任何简单的工具除了我上面描述的内容之外什么都不做。
更新:看起来这个问题与Graphical Command Shell密切相关,它抓住了这里提出的基本思想。