Я хотел бы написать структурированную команду в несколько строк, как
$ for i in *;
→ do
→ file $i;
→ done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text
но найти вкладку не работает,
Как я могу активировать клавишу табуляции в консоли bash?
Ответы:
Когда вы нажмете Enterпосле ввода неполной команды,
bash
оболочка покажет приглашение продолжения (вторичное приглашение$PS2
) и позволит вам выполнить введенную команду. Средства редактирования командной строки оболочки в этой точке такие же, как и в исходном приглашении (первичное приглашение$PS1
), что означает, что Tabключ будет выполнять завершение команды и имени файла как обычно.Чтобы вставить символ табуляции, используйте Ctrl+V Tabили используйте пробелы для отступа. Символы табуляции (или любой другой буквенный символ) всегда могут быть вставлены, если перед ними стоит префикс Ctrl+V.
В качестве альтернативы, если в режиме редактирования командной строки Emacs (который, я считаю, используется по умолчанию
bash
), используйте, Ctrl+X Ctrl+Eчтобы вызвать редактор для ввода вашей команды. Используется редактор, указанный вEDITOR
переменной shell / environment, илиemacs
если эта переменная не установлена.В режиме редактирования командной строки Vi нажмите, Escape vчтобы сделать то же самое.
Команда будет выполнена после сохранения и выхода из редактора.
источник
set -o vi
и который дает вам возможность использовать команды редактирования Vi / Vim в командной строке, например (Esc
),dw
чтобы удалить до конца текущего слова и т. Д. Используйтеset -o emacs
для возврата в режим редактирования командной строки Emacs.Ctrl+X
Ctrl+E
, оболочка откроет его для вас.