Як вбудовано розгорнути підстановку в bash?


10

Я згадав, що Баш може зробити наступне:

Припустимо, що у поточному каталозі є 3 файли: a, b, c, коли я ввожу:

$> somecommand *

а потім натисніть комбінацію клавіш або клавіш або послідовність клавіш, підстановочний номер * в Інтернеті розшириться як:

$> somecommand a b c

але я не можу запам’ятати і не можу вимкнути ключову послідовність! допомогти!


5
СпробуйтеCtrl-X *
Stéphane Chazelas

Відповіді:


7

Якщо це не так, вам потрібно буде прив’язати glob-expand-wordдо ключової послідовності. Як правило, додаючи щось на зразок:

"\C-x*": glob-expand-word

до .inputrc.

Щоб перевірити поточний статус, виберіть щось на зразок:

bind -P | grep glob-expand-word

Де може бути результат:

glob-expand-word can be found on "\C-x*".

Що означало б:

Ctrl-x*

Це також найімовірніша робота:

Ctrl-xCtrl-*


Перегляньте bind -Pта посібник (и) щодо інших смаків.


3

Здається, ви шукаєте для заповнення списку. На сторінці чоловіка для bash:

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes
     sive  tabs, !, for listing alternatives on partial word comple
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program
     mable completion facilities

Отже, залежно від функції завершення для деякогоспоживача, як це завершено.


2

Якщо ви використовуєте set -o vibash, то Ctrl-X*це не працює.

У set -o viрежимі вам потрібно використовувати Esc*замість цього.


1
Можливо, варто зауважити, що як тільки ви перебуваєте у звичайному режимі, <C-X>*буде працювати, але <C-X>це зайве і нічого не робить. ( <C-X>не декремент, як це зроблено у vi.) Якщо ви перебуваєте у режимі вставки, спочатку потрібно скористатися <Esc>.
wchargin

Це чудово. Як вони називаються? bash ярлики клавіатури? Чи є якась документація, де я можу знайти більше цих комбінацій клавіш?
wisbucky

2
@Wisbucky: Трохи запізнюємось, але за всіх інших GNU Readline несе відповідальність за це. Коли у вас повільний день, ознайомтеся з розділом "КОМАНДИ" РЕГІСТРАЦІ " man readline. Я використовую Bash вже 10 років і все ще вчу нові.
Сорен Бьорнстад
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.