Terminalde Yatay Kaydırma


12

Bu konuda zaten 2 soru olduğuna inanıyorum. Hepsi bununla ilgilidir tail -fve bu nedenle insanlar "daha az kullanın" teğet cevabını verirler.

Her şey, her komut vb. İçin buna ihtiyacım var. Sonuç olarak, hemen hemen her çıktı satır kaydırma ve okunması gariptir.

Önerilen bir çözüm echo -ne '\e[?7l', biraz işe yarıyor. Şimdi sorun, bir konsolda kaydırma çubukları almanın herhangi bir yolu var mı?

Ubuntu 12.10, Terminal


Bir örnek olarak (tüm "bu terminaller nasıl çalışır" yanıt olarak!) Windows için Ubuntu Konsolu bu özelliği desteklediğini işaret ediyorum . Ekran genişliği ve arabellek genişliği ayrı ayrı ele alındığından , lsve gibi uygulamalar mceditiyi çalışır .
cz

Yanıtlar:


10

Sorduğunuz şey, bir kısmı görüntülenmekte olan sonsuz genişlikte bir terminaldir. Terminallerin geleneksel olarak nasıl çalıştığı ya da uygulamaların çalışmasını nasıl beklediği değil.

Örneğin, terminalin sonsuz genişliği varsa, görsel uygulamalar ekranın ortasında bir şey görüntülemek istediklerinde nasıl çalışır?

Yapabileceğiniz bir şey GNU kullanmaktır screen(farklı boyutlardaki birkaç terminalden bir ekran oturumu ekleyebilmeniz gerekir, böylece ekran daha büyük bir terminalin küçük bir penceresinin nasıl görüntüleneceğini bilir) ve screenpencerelerin genişliğini bir şeye ayarlayın çok büyük ve sonra görsel uygulamaları ekran genişliği orijinal olduğunu düşünerek kandırmak.

Beğen (içinde screen)

c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"

Bazı görsel uygulamalar iyi çalışır, bazıları iyi çalışmaz (göreceli konumlandırma yaptıkları veya terminal sargısına bağlı olduklarında kurulum için). vimTamam çalışıyor gibi görünüyor.

Sonra verileri yapıştırmak kaydırmak ve kopyalamak için tek seçenek kullanmaktır screen'nin kopya modu. ( <prefix>]) seçimini yapın ve imleci hareket ettirin ( kopyalama modunda info -f screen -n Movementhareket etme konusuna bakın ).

tmux benzer özelliklere sahip olabilir.

Ubuntu ile birlikte gelmeyen bu terminatorterminal emülatörü (java tabanlı), sadece sonsuz bir terminal genişliği ile bunu yapar:terminator

  • çizgiler asla sarılmaz
  • görsel uygulamalara ekran genişliğinin sonsuzluğa değil, pencereye sığdığı söylenir.
  • screenterminfo girişinin satır sarması yapmadığını iddia ettiği için uygulamaların bunun farkında olması ve satırın başlangıcındaki BS'nin bir önceki satırın sonuna gitmemesi iddiasıyla yukarıdaki temel çözümden daha iyi çalışır .

Zaten bir gui ortamındayım, bu yüzden görsel bir editörde bir dosya açmak istersem, terminalden bir gui olanı başlatabilirim. Onları kopyalamak daha kolay, o zaman yine de bir terminalde, çünkü terminalde bir bloğu seçerek kolayca kesilemez. Koşu screen -X width -w 1000döner No screen session found., herhangi bir fikir?
srcspider

@srcspider Dediğim gibi, bunu içinde yapmanız gerekiyor screen. İlk screenönce başlayın .
Stéphane Chazelas

okey Sanırım şimdi seni alıyorum, temelde screen -X width -w 1000 <mycommand>
koşmalıyım

1
@srcspider. No. screen, terminal tabanlı bir terminal emülatörüdür. Bu nedenle, ilk önce başlatmanız gereken gibi xtermveya komutu gnome-terminalçalıştırarak başlatmanız gerekir screen. Ardından, bu yeni terminal öykünücüsünün içinde , pencere genişliğini değiştirmeyi screen -Xsöylemek screeniçin bu komutu çalıştırırsınız . terminatorTercih edeceğinizden şüphelendiğim emülatör için düzenlenmiş cevabımı da görün .
Stéphane Chazelas

Teşekkürler! Bir şekilde onları işe alamasam bile, en azından şimdi neden bu şekilde çalışmalarını sağlayamadığımı biliyorum.
srcspider

6

Emacs öncelikle bir editör ve IDE¹ olsa da, probleminizi çok iyi eşleştirir. Emacs penceresinin içinde bir program çalıştırabilirsiniz ve Emacs programı sonsuz genişlik ve yükseklikteki aptal bir terminalde görüntüler. İmleç ara belleğin sonundaysa, program çıktı ürettikçe pencere kaydırılır; imleci hareket ettirirseniz, çıktı büyüdükçe pencere yerleştirilir.

Tip M-x shell RET(yani Alt+ x shell Return) Emac tampon maddesi içinde bir kabuk başlatın. Yazın C-u M-x shell RETya M-1 M-x shell RETbaşka bir kabuk başlatın. Her kabukta bir program çalıştırabilir ve arabellekleri istediğiniz gibi birden çok pencerede düzenleyebilirsiniz.

Sometimes Bazen editörden daha iyi bir işletim sistemi olduğu söylenir, ancak sadece kullanmayan insanlar tarafından - bu sadece bir şaka.

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.