在 vim 中使用文件列表開啟文件不起作用

在 vim 中使用文件列表開啟文件不起作用

vim $(cat filelist)我嘗試按照之前的建議使用 vim 打開文件問題

假設我有以下文件:

~/Workspace/bar/foo.cpp

包含時正確vim $(cat filelist)開啟執行。但是,當包含時,該命令不會開啟檔案。我想知道為什麼使用絕對路徑會導致命令失敗。~/Workspacefoo.cppfilelistbar/foo.cppfilelist~/Workspace/bar/foo.cpp

答案1

這是由於不同類型的擴展在 shell 中執行的順序造成的。手冊bash頁說:

擴展是在命令列上被分割成單字後執行的。執行了七種擴展:大括號擴展、波形符擴展、參數和變數擴展、命令替換、算術擴展、分詞和路徑名擴展。

替換~is 波形符擴展,同時$(...)取代 is 指令。現在您可以看到,執行命令替換後,不再有波浪號替換。使用真正的絕對路徑(從檔案系統 root 開始/)它可以工作。

但您可以透過以下方式自行執行擴充sed

vim $(sed "s_~_${HOME}_g" filelist)

相關內容