我想在gvim的分割緩衝區中打開我的所有源文件,它們都有TODO。如何在gvim中打開所有在其中包含TODO的文件?
我很確定這可以用grep
來完成,它將輸出管道輸出到編輯命令,但我不確定如何實現這個。
我想在gvim的分割緩衝區中打開我的所有源文件,它們都有TODO。如何在gvim中打開所有在其中包含TODO的文件?
我很確定這可以用grep
來完成,它將輸出管道輸出到編輯命令,但我不確定如何實現這個。
在vim中實際上有一個功能,它可能做你想要比你實際要求更好的東西。檢出:help quickfix
。從本質上講,你可以執行你的grep正如你所想象:
grep -rn TODO . > index.txt
然後你就可以在VIM的快捷列表打開這個指數:
vim -q index.txt
這將允許你通過在每一個TODO導航通過執行:cn
(下一個)和:cp
(之前)的所有文件。也可以在:copen
的底部打開快速列表窗口,顯示您在整個列表中的位置,並允許您導航到任何文件中的每個TODO。
您可以使用xargs
:
grep -l TODO * | xargs vim -o
由於vim在子外殼中運行,而不是連接到終端,所以這有一個弄亂終端的趨勢。至少,使用'xargs gvim -o'或者類似的 – sehe
是以裂片我不會打開它們,除非你知道,只有兩個或 三人。但是如果只有兩到三個文件需要編輯,爲什麼你要尋找一個命令來自動打開它們呢?
這是基本的grep你可以使用:
grep -lIr TODO .
它遞歸搜索當前目錄包含TODO
和 列表他們的文件。它也避免匹配二進制文件(包括.swp和.swo文件)。 然後,如果你正在運行一個GUI Vim的,我會去用:
mvim --remote-silent $(grep -lIr TODO .)
或者,在Vim,你可以使用:argadd
命令和反引號擴張 巧妙地sehe在評論中建議:
:args `grep -Ilr TODO .`
你在說多少個文件?在同一屏幕上有類似30個分割的東西可能有點不切實際 – mihai