Vi ile bir dosyayı düzenlemek için bir boru nasıl kullanılır


15

Diyelim ki file.txt adlı bir dosyam var. İçinde vi ile düzenlemek istediğim bir dosyanın adı. Dosyayı düzenleyebilmek için böyle bir şey yapmak istiyorum:

cat file.txt | vi

Ancak bu işe yaramıyor. Nasıl yapılabilir?

Bir şeyleri netleştirmek için:

İşte file.txt içeriği:

textfile

Bu yüzden bir şekilde file.txt içeriğini vi'ye göndermek istiyorum, böylece yazarken de aynı şey olacak vi textfile.

File.txt içeriği değişebilir. Vi'nin file.txt dosyasında listelenen dosyaları düzenlemek istiyorum.


Sanmıyorum ki vi = vim. Bunun bu soru için bir fark yarattığını bilmiyorum, ancak etiketiniz yanıltıcı.
soandos

Sormaya çalıştığınız sorunuzun daha fazla olabileceğini düşünüyorum. İsteğe bağlı olarak adlandırılmış bir dosyayı açmak, vi'nin temel kullanımıdır. yani: vi file.txt. Yapmaya çalıştığın daha gelişmiş bir şey var mı?
camster342

vi, OSX ve diğer modern Linux sistemlerinde vim'i başlatır.
tony_sid

Aslında adı OSX panosunda bulunan bir dosyayı düzenlemeye çalışıyorum. Pbpaste yazarken dosya adı gösterilir. Bu dosyayı gerçekten yazmak zorunda kalmadan düzenlemeye çalışıyorum, ancak panoda saklanan her şeyi kullanarak. Linux pbpaste'ye sahip değildir, fakat aslında kedi dosya adından çıktı almakla aynıdır.
tony_sid

kurmak xclip ve sonra kullan xclip -o x11'deki kabuktaki panoya erişmek için. Sadece değiştirmeniz gerektiğinde pbpaste...
akira

Yanıtlar:


9

bunu deneyebilirsin:

% vi `cat file.txt`

veya, kedinin yararsız kullanımını önlemek için:

% vi `< file.txt`

vi (m) 'ye sadece birkaç keyfi şey söylüyorsunuz. vi (m) 'hey, o dosyayı aç' gibi bir şey yapmak istiyorsanız, vi (m) 'de kullanacağınız komutları aynı şekilde beslemeniz gerekir. gibi bir şey :e foo.txt. ama bu benim önerdiğim şeyi yapmaktan daha karmaşık.


Onlar işe yaramadı.
tony_sid

4
Bunlar geri tepmeler, onları doğru yazdınız mı? Bir alt kabuk açarlar, 'kedi' yi uygularlar ... eğer işe yaramazsa, dene vi $(cat file.txt)
akira

Oh tamam, şimdi çalışıyor. Teşekkürler.
tony_sid

23

En azından vim için (vi hakkında emin değilim), yapabilirsiniz

cat file.txt | vim -

'-' vim'e stdin'den okumasını söyler.


1
Üzgünüz, ama bu doğru cevap değil. Bu vim 'textfile' içeriği ile açılır. Sorgu yapan kişi 'textfile'i açmak için vim'i istiyor. Oy veremedim ama ne yazık ki burada yeterince itibarım yok.
scubbo

Scubbo haklı! Cevabım, sadece stdin'den bir şeyi pipolamak için daha kullanışlıdır.
Jeff
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.