我可以在引號中使用自動完成功能嗎?

我可以在引號中使用自動完成功能嗎?

我經常需要對目錄做一些事情。為了有一個簡寫,我將它們的路徑放入 bash 變數中,如下所示:

currentProjectPath="Save the blank"

然後我想在裡面創建一些目錄(或基本上用它做任何事情),但因為它包含空格,我必須引用它:

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

在那裡使用自動完成功能會很棒,但是當鍵入mkdir "$curr然後按 時Tab,什麼也沒有發生。

作為解決方法,我有時會鍵入mkdir $currTab,將其補全為mkdir $currentProjectPath(inkl.末尾空白),然後返回到開頭添加",但每隔一段時間我就會忘記這一點。

是否有可能$在 bash 中啟用帶引號的字串中自動完成變數名稱?

答案1

預設M-$( Alt+ $) 綁定到雙引號內complete-variable,並且它在雙引號內工作。

請注意,雖然Tab一般情況下所做的操作取決於其上下文(例如,您會在 aftercd和 after 後看到不同的可能完成set),complete-variable但明確地將point 之前的文字視為shell 變量,僅此而已。還有其他類似的專門完成函數(例如complete-hostnamecomplete-username),您可能會發現它們很有用。請參閱man 1 bash線上手冊發現它們及其預設綁定。

相關內容