Фильтр общего назначения по мере ввода (он же typeahead, инкрементный поиск, автозаполнение) есть ли он там?

Фон

В последнее время я стал фанатиком того, что все, что я печатаю во время работы на компьютере, должно быть совместимо с "СУХОЙ". Если есть что-то, что мне нужно вводить более одного раза в любом контексте, я хочу, чтобы какой-то вариант автозаполнения, учитывающий пользователя, выполнял часть работы за меня - всегда - без исключений.

Мне пришлось работать под Windows, и я рассмотрел решения с графическим интерфейсом, чтобы воплотить эту безумную цель в жизнь.

(Почти) оптимальное решение

Если у вас есть время, откройте Firefox 3.0 и введите несколько нажатий клавиш в адресную строку. Вы заметите, что он выполняет что-то вроде Incremental Автозаполнение на основе разделенных пробелами подстрок того, что вы вводите. Еще одно место в Firefox, которое делает что-то подобное, — это URL-адрес about:config.

Это неоптимально, потому что я не хочу этого только в Firefox. Я хочу использовать это везде.

Вопрос

Кто-нибудь знает о виджете или приложении, которое ничего не делает, кроме безумно хорошего добавочного автозаполнения, которое можно использовать в качестве универсального инструмента «запускать везде»? Что-то, что позволяет пользователю: 1) поддерживать один или несколько «файлов-кандидатов на завершение»; 2) выбрать один из этих файлов в качестве источника для завершения стиля Firefox 3.0; 3) вернуть результат (или пустой, если пользователь отменил) и выполнить только эти три действия?

Подробности

Вот как это должно работать:

  • ШАГ 1: пользователь сохраняет или несколько CSV-файлов (или других легко редактируемых форматов) где-нибудь на своем жестком диске.
  • ШАГ 2: пользователь создает сценарий Windows Script Host или пакетный файл (или что-то еще) для создания экземпляра графического интерфейса FilterAsYouType.
  • ШАГ 3: пользователь запускает файл сценария, и файл сценария создает экземпляр графического интерфейса пользователя, сообщая ему, какой CSV-файл использовать в качестве источника всех возможных завершений.
  • ШАГ 4: пользователь либо выбирает одно из дополнений, вводит свой собственный текст, которого нет в списке, либо отменяет его, не вводя ничего.
  • ШАГ 5: когда пользователь закончит, скрипт сохраняет результат в переменную и что-то с ним делает.

Вот некоторый псевдокод для скрипта:

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 база данных) предоставит мне возможность самостоятельно генерировать «списки кандидатов» или «журналы истории», а затем просто использовать эти журналы в качестве источника возможных завершений.

Отказ от ответственности

Я пробовал несколько программ запуска с графическим интерфейсом, механизмы командной строки, такие как power-shell и оболочки сценариев, обычную старую историю командной строки с разной степенью удовлетворения. Проблема с ними в том, что все они делают лишние вещи, такие как поиск в каталогах или встроенные команды. Мне просто не нужно ничего, кроме того, что находится в файле CSV, на который я указываю.

Мне интересно, есть ли какой-нибудь простой инструмент, который не делает ничего, кроме того, что я описал выше.

ОБНОВЛЕНИЕ: похоже, что этот вопрос очень тесно связан с Графическая командная оболочка, в которой отражена основная идея, представленная здесь.


person dreftymac    schedule 02.12.2008    source источник
comment
emacswiki.org/emacs/Icicles   -  person dreftymac    schedule 13.12.2008
comment
См. также: donationcoder.com/software/mouser/ популярные-приложения/farr   -  person dreftymac    schedule 28.02.2019


Ответы (1)


Вы действительно должны попробовать Launchy — это именно то, что вы ищете, "запустить что угодно" с интеллектуальным автозаполнением . Это полностью меняет способ взаимодействия с ПК с Windows.

И у него открытый исходный код, поэтому вы можете позаимствовать его код автозаполнения, если хотите создать свой собственный интерфейс.

person Eli Bendersky    schedule 03.01.2009
comment
Инструмент настоятельно рекомендуется, однако некоторые утверждают, что он интенсивно использует ЦП stackoverflow.com/questions/107383/ - person Saif Khan; 03.01.2009
comment
@eliben: Ага. Я был там, сделал это. Несколько месяцев назад я уделил Launchy немного внимания и отказался от него. Последний, который я использую, называется «Найди и запусти робота» (FARR). Причина: FARR можно расширить с помощью сценариев на javascript, ruby, python и т. д. - person dreftymac; 03.01.2009