Это должно сделать трюк:
find . -name "*.txt" -exec vim {} +
Используйте Vim, это лучше для вашего здоровья. :-)
Опция oft-overlooked позволяет сделать так, +
чтобы -exec
все имена файлов (вплоть до ограничения длины строки) отображались в одной строке, т.е. вы все равно получаете все файлы, открытые в одном vim
сеансе (навигация с помощью :n
для следующего и :N
для предыдущего файла).
При этом vim -p
вы получаете вкладку файла для каждого файла. Проверьте :help tab-page-commands
для более подробной информации.
При этом vim -o
вы получите горизонтально разделенные окна для каждого файла, vim -O
вертикально разделенные окна. Проверьте :help window-move-cursor
для более подробной информации.
Обратите внимание, что предыдущая версия этого ответа vim $(find . -name "*.txt")
не работает с пробелами в именах файлов и имеет последствия для безопасности.
Пайпинг в xargs vi
дает Warning: Input is not from a terminal
плюс плюс терминал с полностью поддельным поведением впоследствии. Пользователь объяснил, почему в комментарии ниже, и немного больше объяснений в этом вопросе .