(Seguindo a explicação de grawity, isso xargs
aponta stdin
para /dev/null
.)
A solução para esse problema é adicionar o -o
parâmetro a xargs
. De man xargs
:
-o
Reabra stdin como /dev/tty
no processo filho antes de executar o comando. Isso é útil se você deseja xargs
executar um aplicativo interativo.
Portanto, a seguinte linha de código deve funcionar para você:
encontrar . -name "* .txt" | xargs -o vim
O GNU xargs suporta essa extensão desde algum lançamento em 2017 (com o nome da opção longa --open-tty
).
Para versões mais antigas ou outras do xargs, você pode explicitamente passar /dev/tty
para resolver o problema:
find . -name "*.txt" | xargs bash -c '</dev/tty vim "$@"' ignoreme
( ignoreme
Existe para receber $ 0, para que $ @ sejam todos argumentos de xargs.)
find
ouxargs
em tudo. Abra o vim sem argumentos e execute:args **/*.txt<CR>
para definir os argumentos do vim de dentro do editor.