Najprostszym sposobem jest podanie locatejako podstawienia powłoki , na przykład:
vim $(locate filename123)
Możesz również rozważyć użycie findzamiast locateprzekazywania nazw plików do edycji, na przykład:
find . -name 'filename123' -exec vim {} +
W systemie Unix / OSX można używać xargsz -oparametrem, takim jak:
locate filename123 | xargs -o vim
-oPonownie otwórz stdin jako / dev / tty w procesie potomnym przed wykonaniem polecenia. Jest to przydatne, jeśli chcesz, aby xargs uruchamiał interaktywną aplikację.
Lub w systemie Linux wypróbuj następujące obejście, używając:
locate filename123 | xargs -J% sh -c 'vim < /dev/tty $@'
Jeśli używasz różnych poleceń, użyj substytucji poleceń, aby to osiągnąć, na przykład:
vim $(locate filename123)
vim `locate filename123`
Alternatywnie użyj GNU parallelzamiast xargswymusić alokację tty, na przykład:
locate filename123 | parallel -X --tty vi
Uwaga: parallelw systemach Unix / OSX nie będzie działać, ponieważ ma inne parametry i nie obsługuje tty.
Wiele innych popularnych komend zapewnia alokację pseudo-tty a także (jak -tw ssh), więc sprawdzić o pomoc.
Inną sugestią byłoby użycie vipe(potok poleceń Vima) lub użycie następującego prostego skryptu:
#!/bin/sh
# usage: locate filename123 | vip
exec vim < /dev/tty "$@"
Związane z: