Динамическое расширение аббревиатуры для оболочки - PullRequest
3 голосов
/ 12 мая 2011

Есть ли функция в одной из оболочек linux, такая как emacs dabbrev-expand?

1 Ответ

3 голосов
/ 12 мая 2011

Сначала дать определение:

Mx описать-функцию Ввести dabbrev-expand Ввести

...
Expands to the most recent, preceding word for which this is a prefix.

Учитывая, что bash, похоже, наиболее сильно подвержен влиянию Emacs, поиск там сначала открывает несколько возможностей:

man bash (1), раздел readline

dynamic-complete-history (M-TAB)
     Attempt completion on the text before point, comparing the text
     against lines from the history list for possible completion matches.
dabbrev-expand
      Attempt menu completion on the text before point, comparing the text
      against lines from the history list for possible completion matches.

По умолчанию (или, по крайней мере, в моей системе), M - / уже привязан к complete-filename:

$ bind -l | grep /
"\e/": complete-filename

Вы можете повторно привязать его, поставив

"\e/": dabbrev-expand

в вашем ~/.inputrc или /etc/inputrc.

Обратите внимание, что кажется, что оно завершает только первое слово (команду) и только из истории, а не из текущей командной строки, насколькоЯ могу сказать.

В zsh я не вижу ничего на странице руководства, которая делает это, но должна быть возможность сделать это, выяснив соответствующий compctlкоманда ( Google mirror ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...