Najprostszym sposobem jest podanie locate
jako podstawienia powłoki , na przykład:
vim $(locate filename123)
Możesz również rozważyć użycie find
zamiast locate
przekazywania nazw plików do edycji, na przykład:
find . -name 'filename123' -exec vim {} +
W systemie Unix / OSX można używać xargs
z -o
parametrem, takim jak:
locate filename123 | xargs -o vim
-o
Ponownie 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 parallel
zamiast xargs
wymusić alokację tty, na przykład:
locate filename123 | parallel -X --tty vi
Uwaga: parallel
w 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 -t
w 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: