我经常需要处理目录。为了方便记,我将其路径放入 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
并且它在双引号内有效。
注意,虽然 what 的Tab作用通常取决于其上下文(例如,在 之后cd
和 之后,您会看到不同的可能补全set
),complete-variable
但明确将 point 之前的文本视为 shell 变量,仅此而已。还有其他类似的专业补全函数(例如complete-hostname
、complete-username
),您可能会发现它们很有用。请参阅man 1 bash
或在线手册发现它们和它们的默认绑定。