Мне часто приходится что-то делать с каталогами. Для краткости я помещаю их пути в переменную bash, например так:
currentProjectPath="Save the blank"
Затем я хотел бы создать внутри несколько каталогов (или, по сути, сделать с ними что-нибудь), но поскольку они содержат пробелы, мне придется заключить их в кавычки:
mkdir "$currentProjectPath"
mkdir -p "$currentProjectPath/Ideas/My Ideas/The good ones"
Было бы здорово использовать там автодополнение, но при вводе текста mkdir "$curr
и нажатии Tabничего не происходит.
В качестве обходного пути я иногда набираю mkdir $curr
Tab, что дополняет строку до mkdir $currentProjectPath
(включая пробел в конце), а затем возвращаюсь в начало, чтобы добавить "
, но каждый второй раз я забываю об этом.
Есть ли возможность включить автодополнение $
имен переменных в строках в кавычках в bash?
решение1
По умолчанию M-$
( Alt+ $) привязано complete-variable
и работает внутри двойных кавычек.
Обратите внимание, что Tabв целом то, что делает, зависит от контекста (например, вы видите различные возможные завершения после cd
и после set
), complete-variable
явно обрабатывает текст перед точкой как переменную оболочки, ничего больше. Существуют и другие аналогичные специализированные функции завершения (например complete-hostname
, complete-username
), вы можете найти их полезными. Смотрите man 1 bash
илионлайн-руководствочтобы обнаружить их и их привязки по умолчанию.