Jak używać potoku do edycji pliku za pomocą vi


15

Powiedzmy, że mam plik o nazwie file.txt. Jest to nazwa pliku, który chcę edytować za pomocą vi. Chcę zrobić coś takiego, aby móc edytować plik:

cat file.txt | vi

To jednak nie działa. Jak można to zrobić?

Aby wyjaśnić:

Oto zawartość pliku.txt:

textfile

Chcę więc jakoś wysłać zawartość pliku.txt do vi, aby stało się to samo, co podczas pisania vi textfile.

Zawartość pliku.txt może ulec zmianie. Chcę, aby vi edytować dowolny plik wymieniony w pliku.txt.


Nie sądzę, że vi = vim. Nie wiem, czy to wpływa na to pytanie, ale Twój tag wprowadza w błąd.
soandos

Myślę, że twoje pytanie może zawierać więcej. Otwarcie pliku o dowolnej nazwie to podstawowe użycie vi. tj vi file.txt. : Czy próbujesz zrobić coś bardziej zaawansowanego?
camster342

vi uruchamia vim na OSX i innych nowoczesnych systemach Linux.
tony_sid

W rzeczywistości próbuję edytować plik, którego nazwa jest przechowywana w schowku OSX. Wpisanie pbpaste wyświetli nazwę pliku. Próbuję edytować ten plik bez konieczności jego wpisywania, ale używając wszystkiego, co jest zapisane w schowku. Linux nie ma pbpaste, ale jest zasadniczo taki sam jak pobieranie danych wyjściowych z pliku cat.
tony_sid

zainstaluj, xclipa następnie użyj, xclip -oaby uzyskać dostęp do schowka na powłoce w x11. na wypadek, gdybyś musiał wymienić pbpaste...
akira

Odpowiedzi:


9

możesz spróbować:

% vi `cat file.txt`

lub, aby uniknąć niepotrzebnego użycia kota:

% vi `< file.txt`

mówisz vi (m) tylko kilka arbitralnych rzeczy. jeśli chcesz, aby vi (m) zrobiło coś w stylu „hej, otwórz ten plik”, musisz podać mu te same polecenia, których używałbyś w vi (m), np. coś jak :e foo.txt. ale to tylko bardziej skomplikowane niż robienie tego, co zaproponowałem.


Te nie działały.
tony_sid

4
to są backticksy, wpisałeś je poprawnie? otwierają podpowłokę, uruchamiają „kota” ... jeśli to nie działa, spróbuj vi $(cat file.txt)
akira

Och ok, teraz działa. dzięki.
tony_sid

23

Przynajmniej dla vima (nie jestem pewien co do vi), możesz to zrobić

cat file.txt | vim -

„-” mówi vimowi, żeby czytał ze standardowego wejścia.


1
Przepraszamy, ale to nie jest poprawna odpowiedź. Spowoduje to otwarcie vima z zawartością „pliku tekstowego”. Pytający chce, aby vim sam otworzył „plik tekstowy”. Oddałbym głos, ale niestety nie mam tutaj wystarczającej reputacji.
scubbo

scubbo ma rację! Moja odpowiedź jest bardziej przydatna po prostu przesyłając coś ze standardowego wejścia.
Jeff
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.