4

Представьте, что у меня есть сеанс bash в терминале, только после некоторого вывода:

$ grep foo *.txt
this.txt: something123 foo
$

После этого grep предположим, что моя следующая команда примет something123 в качестве аргумента.

Существуют ли какие-либо инструменты, которые позволят мне добавить / автоматически завершить something123 -то123 в командной строке? т.е. автозаполнение чтения из последнего буфера терминала?

В частности: я хочу иметь возможность набирать grep в командной строке, появляются несколько символов something123 и остальная часть something123 то123, как если бы, например, something123 было именем файла в текущем рабочем каталоге.

Изменить: в настоящее время я использую терминал xfce4 (на Arch Linux), но я открыт для других!

2 ответа2

2

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

См. Http://tldp.org/LDP/abs/html/tabexpansion.html для получения инструкций о том, как самостоятельно написать что-то подобное. Предупреждение: подробное знание команд bash требуется, если вы решите заняться написанием этого самостоятельно, но, учитывая, что вы просто хотите выполнить определенный grep, я не думаю, что это будет так сложно.

1

Вы не говорите, какую систему вы используете ...

iTerm2 в Mac OS X сделает это, используя Cmd+; Сочетание клавиш. Это не совсем похоже на завершение табуляции (вы должны выбрать из списка завершений GUI терминала, прежде чем оно отправит какие-либо нажатия клавиш в базовый процесс), но тем не менее оно сохраняет ваши нажатия клавиш. См. Http://www.iterm2.com/#/section/features/autocomplete.

Я был бы удивлен, если бы не было что-то подобное для Unix.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .