Могу ли я использовать автодополнение в кавычках?

Могу ли я использовать автодополнение в кавычках?

Мне часто приходится что-то делать с каталогами. Для краткости я помещаю их пути в переменную bash, например так:

currentProjectPath="Save the blank"

Затем я хотел бы создать внутри несколько каталогов (или, по сути, сделать с ними что-нибудь), но поскольку они содержат пробелы, мне придется заключить их в кавычки:

mkdir "$currentProjectPath"
mkdir -p "$currentProjectPath/Ideas/My Ideas/The good ones"

Было бы здорово использовать там автодополнение, но при вводе текста mkdir "$currи нажатии Tabничего не происходит.

В качестве обходного пути я иногда набираю mkdir $currTab, что дополняет строку до mkdir $currentProjectPath(включая пробел в конце), а затем возвращаюсь в начало, чтобы добавить ", но каждый второй раз я забываю об этом.

Есть ли возможность включить автодополнение $имен переменных в строках в кавычках в bash?

решение1

По умолчанию M-$( Alt+ $) привязано complete-variableи работает внутри двойных кавычек.

Обратите внимание, что Tabв целом то, что делает, зависит от контекста (например, вы видите различные возможные завершения после cdи после set), complete-variableявно обрабатывает текст перед точкой как переменную оболочки, ничего больше. Существуют и другие аналогичные специализированные функции завершения (например complete-hostname, complete-username), вы можете найти их полезными. Смотрите man 1 bashилионлайн-руководствочтобы обнаружить их и их привязки по умолчанию.

Связанный контент