Как получить завершение / предложения в реальном времени в терминале Linux? [closed]

Я хотел бы иметь что-то похожее на все в Windows (используя locate ): каждый раз, когда я нажимаю клавишу, список файлов, который соответствует текущие входы обновляются немедленно.

Мне интересно, возможно ли завершение текста в реальном времени в терминале и как мне это сделать?

Чтобы было понятнее, предположим, что у меня эта функция реализована как «foo», а затем, когда я набираю foo a и нажмите TAB в командной строке, он должен дать список всех файлов с именем, содержащим a , а затем, если я продолжу набирать b (теперь команда становится foo ab ), затем список файлов автоматически (без необходимости нажимать что-либо еще) обновляется до тех, которые содержат ab , и так далее.

4
задан 20 December 2015 в 16:34

2 ответа

Это сообщение Unix & Linux описывает то, что Вы хотите:

... Я столкнулся с большим, универсальным инструментом: командная строка нечеткое средство поиска.

Это, прежде всего, позволяет, Вы к “нечеткому - находите” файлы (проверьте богатую gif анимацию ссылкой выше), но это также позволяет подавать произвольные текстовые данные к нему и фильтровать эти данные. Так, идея ярлыков проста: все, в чем мы нуждаемся, должно поддержать файл с путями (которые являются ярлыками), и нечеткий фильтр этот файл. Вот то, как это смотрит: мы вводим cdg команда (от “CD, глобального”, если Вам нравится), получает список наших закладок, выбирает необходимую во всего нескольких нажатиях клавиш и нажимает Enter. Рабочий каталог изменяется на выбранный объект:

cdg

Это чрезвычайно быстро и удобно: обычно я просто буквы типа 3-4 необходимого объекта и все другие уже отфильтрован.


Это не может быть тем, что Вы ищете, но Редактор Vim с плагином CtrlP может использоваться для этого:

enter image description here enter image description here enter image description here

Необходимо будет установить один из vim, vim-nox, vim-gnome, vim-gtk или vim-athena чтобы это работало. Инструкции по установке для CtrlP предоставлены в его веб-сайте:

  1. Клонируйте плагин в отдельный каталог:

    $ cd ~/.vim
    $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
    
  2. Добавьте к своему ~/.vimrc:

    set runtimepath^=~/.vim/bundle/ctrlp.vim
    
  3. Выполненный в командной строке Vim:

    :helptags ~/.vim/bundle/ctrlp.vim/doc
    
  4. Vim перезапуска и проверка :help ctrlp.txt для инструкций по использованию и деталей конфигурации.

Если Вы никогда не использовали Vim прежде, это может быть немного пугающе. Выполненный vimtutor понять его.

3
ответ дан 1 December 2019 в 10:03

Можно записать собственные сценарии завершения для оболочки.

, Например, bash использование простые сценарии оболочки / функционирует для завершения. Установка bash-completions, если Вы уже не имеете и смотрите на /usr/share/bash-completion/completions для некоторых примеров.

В Вашем сценарии Вы могли просто звонить locate, чтобы получить список соответствий и возвратить их.

0
ответ дан 1 December 2019 в 10:03

Другие вопросы по тегам:

Похожие вопросы: