Daha az içerikle düzenleme ve düzenleme: "standart girdi düzenlenemiyor" hatası. Geçici Çözümler?


9

Kısa bir süre önce dosyalarımı sayfalarsam tamponu Emacs'ta lessbasıp vaçabileceğimi öğrendim . Ortam değişkenim $EDITORdoğru bir şekilde ayarlandığı sürece çalışır , bu durumda benim durumum şöyle:

export EDITOR='env TERM=xterm-256color emacs -nw'

Yukarıdakiler bana çalışan terminalin içine emac yükleme yeteneği veriyor less.

Ancak, yukarıda hile çalışmıyor boru komutları less. Bunu yaparken less, aşağıdaki mesajla şikayet eder:

Cannot edit standard input (press RETURN)

Sorum şu, bu neden oluyor? Ama en önemlisi, bunun bir çözümü var mı?


2
Emacslient'i nasıl kullanacağınızı öğrenmelisiniz , bu da zaten çalışan bir Emacs kopyasında dosyaları düzenlemenizi sağlar. Emacs en hızlı başlayan editör değil.
cjm

Düzenlememi neden geri aldın? Başlık bir soru değil mi?
John

1
Üzgünüm @ John, düzenlemeni görmedim. Bu sorunu çoğunlukla geçici çözümlerle ilgilendiğimi açıklığa kavuşturmak için başlığı düzenledim. Bence başlık şu: Piping into less and editing: “cannot edit standard input” error. Workarounds?açık. Neden aksini düşünüyorsun?
Amelio Vazquez-Reina

Bu anlaşılabilir. Hatayı neden aldığınızı soruyorsanız, bir geçici çözüm isteyeceğinizin açık olması gerektiğini varsaysam da.
John

Katılıyorum, şimdiye kadar en çok oy alan cevap whysadece değil, sadece ele alıyor workarounds, bu yüzden vurgu ekledim.
Amelio Vazquez-Reina

Yanıtlar:


5

Daha önce de söylendiği gibi, bir giriş akışını düzenleyemezsiniz.

Çözüm oldukça açıktır: akışı içeriden bir dosyaya kaydedin lessve kaydedilen dosyayı açın . Bunu görüntülerken yapmak için tuşuna basın sve bir dosya adı verin. Ardından less, dosyayı elle çıkın ve açın veya yine de içeriden kaydettiğiniz dosyanın adını lessyazın :eve verin.


15

İyi bir çözüm, çıktıyı daha azdan editörünüze bağlamaktır, örneğin "echo foo | less" sonra şunları yapabilirsiniz:

g|$vim -

gdosyanın / girişin ilk satırına atlayacak |, "boru" eylemini çağıracak, $işaret ("son") ve ardından aralığı içine boru ( vim -bu durumda "-" anlamına gelir) stdin'den girişi okumak için).


1
Harika, teşekkürler!
Simon Pickup

5

Bu tam olarak söylediği anlamına gelir - sadece diskteki bir dosyayı bu şekilde düzenleyebilirsiniz (from less). Eğer bir sürecin çıkış borulu Eğer onun STDOUTiçine gidiyor STDINiçin less; düzenlenecek dosya yok.

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.