我可以在引文中使用自动完成功能吗?

我可以在引文中使用自动完成功能吗?

我经常需要处理目录。为了方便记,我将其路径放入 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并且它在双引号内有效。

注意,虽然 what 的Tab作用通常取决于其上下文(例如,在 之后cd和 之后,您会看到不同的可能补全set),complete-variable但明确将 point 之前的文本视为 shell 变量,仅此而已。还有其他类似的专业补全函数(例如complete-hostnamecomplete-username),您可能会发现它们很有用。请参阅man 1 bash在线手册发现它们和它们的默认绑定。

相关内容