我经常需要对目录做一些事情。为了有一个简写,我将它们的路径放入 bash 变量中,如下所示:
currentProjectPath="Save the blank"
然后我想在里面创建一些目录(或者基本上用它做任何事情),但因为它包含空格,我必须引用它:
mkdir "$currentProjectPath"
mkdir -p "$currentProjectPath/Ideas/My Ideas/The good ones"
在那里使用自动完成功能会很棒,但是当键入mkdir "$curr
然后按时Tab,什么也没有发生。
作为解决方法,我有时会键入mkdir $curr
Tab,将其补全为mkdir $currentProjectPath
(inkl.末尾空白),然后返回到开头添加"
,但每隔一段时间我就会忘记这一点。
是否有可能$
在 bash 中启用带引号的字符串中自动完成变量名称?
默认情况下
M-$
( Alt+ $) 绑定到complete-variable
双引号内,并且它在双引号内工作。请注意,虽然Tab一般情况下所做的操作取决于其上下文(例如,您会在 after
cd
和 after后看到不同的可能完成set
),complete-variable
但显式地将 point 之前的文本视为 shell 变量,仅此而已。还有其他类似的专门完成函数(例如complete-hostname
,complete-username
),您可能会发现它们很有用。请参阅man 1 bash
或在线手册来发现它们及其默认绑定。