Vim

如何使用vim打開目前目錄和所有子目錄中的所有文件?

  • January 24, 2021

到目前為止,我一直在使用vim */**which 似乎打開子目錄中的所有文件,而不是目前目錄中的文件,並且vim *打開目錄中的所有文件current。但是如何打開目前目錄所有子目錄中的所有文件呢?

zsh

vim ./**/*(.)

其他貝殼:

find . -name '.?*' -prune -o -type f -exec vim {} +

在任何級別的子目錄中只打開(非隱藏的)正常文件(不是目錄、符號連結、管道、設備、門、套接字……)。


vim ./**/*(D-.)

其他外殼,GNU find

find . -xtype f -exec vim {} +

還可以打開隱藏文件(並遍歷隱藏目錄)和指向正常文件的符號連結。


和:

vim ./***/*(D-.)

其他貝殼:

find -L . -type f -exec vim {} +

在查看子目錄時還可以遍歷符號連結。


如果您只想要一級子目錄:

vim ./* ./*/*

請注意,./如果某些文件名以-或開頭,請在您的 glob 前加上前綴是一個好習慣+

(當然這些find也適用於zsh. 請注意,vim如果文件列表很大,並且至少在 GNU 中,它們可能會執行多個實例find,將無法跳過名稱包含不形成的字節序列的隱藏文件/目錄您的語言環境中的有效字元)。

引用自:https://unix.stackexchange.com/questions/149355