Tohle by mělo stačit:
find . -name "*.txt" -exec vim {} +
Používejte Vim, je to lepší pro vaše zdraví. :-)
Často přehlížený +
možnost -exec
zobrazí všechny názvy souborů (až do omezení délky řádku) na jednom řádku, tj. stále budete mít všechny soubory otevřené v jednom vim
relace (navigováno pomocí :n
pro další a :N
pro předchozí soubor).
S vim -p
získáte kartu souboru pro každý soubor. Zkontrolujte :help tab-page-commands
pro více podrobností.
S vim -o
získáte horizontálně rozdělená okna pro každý soubor, vim -O
vertikálně dělená okna. Zkontrolujte :help window-move-cursor
Více podrobností.
Všimněte si, že předchozí verze této odpovědi, vim $(find . -name "*.txt")
, nepracuje s mezerami v názvech souborů a má bezpečnostní důsledky.
Potrubí do xargs vi
dává Warning: Input is not from a terminal
, plus terminál se zcela falešným chováním poté. Uživatel grawity vysvětlil proč v komentáři níže a trochu více vysvětlení v této otázce.
Nebo spusťte vim a odtud:
:args **/*.txt