Это должно сделать трюк:
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
, а от терминала с полностью поддельным поведением. Пользователь объяснил почему в комментарии ниже, и немного больше объяснений в этом вопросе.