Я хотел бы иметь что-то похожее на все
в Windows (используя locate
): каждый раз, когда я нажимаю клавишу, список файлов, который соответствует текущие входы обновляются немедленно.
Мне интересно, возможно ли завершение текста в реальном времени в терминале и как мне это сделать?
Чтобы было понятнее, предположим, что у меня эта функция реализована как «foo», а затем, когда я набираю foo a
и нажмите TAB
в командной строке, он должен дать список всех файлов с именем, содержащим a
, а затем, если я продолжу набирать b
(теперь команда становится foo ab
), затем список файлов автоматически (без необходимости нажимать что-либо еще) обновляется до тех, которые содержат ab
, и так далее.
Это сообщение Unix & Linux описывает то, что Вы хотите:
... Я столкнулся с большим, универсальным инструментом: командная строка нечеткое средство поиска.
Это, прежде всего, позволяет, Вы к “нечеткому - находите” файлы (проверьте богатую gif анимацию ссылкой выше), но это также позволяет подавать произвольные текстовые данные к нему и фильтровать эти данные. Так, идея ярлыков проста: все, в чем мы нуждаемся, должно поддержать файл с путями (которые являются ярлыками), и нечеткий фильтр этот файл. Вот то, как это смотрит: мы вводим
cdg
команда (от “CD, глобального”, если Вам нравится), получает список наших закладок, выбирает необходимую во всего нескольких нажатиях клавиш и нажимает Enter. Рабочий каталог изменяется на выбранный объект:Это чрезвычайно быстро и удобно: обычно я просто буквы типа 3-4 необходимого объекта и все другие уже отфильтрован.
Это не может быть тем, что Вы ищете, но Редактор Vim с плагином CtrlP может использоваться для этого:
Необходимо будет установить один из vim
, vim-nox
, vim-gnome
, vim-gtk
или vim-athena
чтобы это работало. Инструкции по установке для CtrlP предоставлены в его веб-сайте:
Клонируйте плагин в отдельный каталог:
$ cd ~/.vim $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
Добавьте к своему ~/.vimrc:
set runtimepath^=~/.vim/bundle/ctrlp.vim
Выполненный в командной строке Vim:
:helptags ~/.vim/bundle/ctrlp.vim/doc
- Vim перезапуска и проверка
:help ctrlp.txt
для инструкций по использованию и деталей конфигурации.
Если Вы никогда не использовали Vim прежде, это может быть немного пугающе. Выполненный vimtutor
понять его.
Можно записать собственные сценарии завершения для оболочки.
, Например, bash
использование простые сценарии оболочки / функционирует для завершения. Установка bash-completions
, если Вы уже не имеете и смотрите на /usr/share/bash-completion/completions
для некоторых примеров.
В Вашем сценарии Вы могли просто звонить locate
, чтобы получить список соответствий и возвратить их.