En basit yol, kabuk ikamesilocate olarak geçmek , örneğin:
vim $(locate filename123)
Düzenlemek için dosya adlarını iletmek findyerine kullanmayı da düşünebilirsiniz locate, örneğin:
find . -name 'filename123' -exec vim {} +
Unix / OSX üzerinde kullanabilirsiniz xargsile -o, parametre gibi:
locate filename123 | xargs -o vim
-oKomutu çalıştırmadan önce stdin'i alt süreçte / dev / tty olarak yeniden açın. Bu, xargs'ın etkileşimli bir uygulama çalıştırmasını istiyorsanız kullanışlıdır.
Veya Linux'ta aşağıdakileri kullanarak aşağıdaki geçici çözümü deneyin:
locate filename123 | xargs -J% sh -c 'vim < /dev/tty $@'
Farklı komutlar kullanıyorsanız, bunu başarmak için komut yerine kullanın:
vim $(locate filename123)
vim `locate filename123`
Alternatif olarak , tty tahsisini zorlamak parallelyerine GNU kullanın, xargsörneğin:
locate filename123 | parallel -X --tty vi
Not: parallelUnix / OSX'te farklı parametreleri olduğundan ve tty'yi desteklemediğinden çalışmaz.
İyi (gibi birçok diğer popüler komutlar sözde tty tahsisini sağlayan -tiçinde ssh), bu yüzden yardım edin.
Başka bir öneri de vipe(bir Vim komut borusu) kullanmak veya aşağıdaki basit komut dosyasını kullanmaktır:
#!/bin/sh
# usage: locate filename123 | vip
exec vim < /dev/tty "$@"
İlişkili: