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.