Bash ekranının çıkıştan sonra vim metnini göstermemesi nasıl ayarlanır?


28

Sorum basit, ama kolayca çerçevelemeyi / açıklamayı zor buluyorum.

Farklı hesaplara sahip birkaç Unix kutusuna oturum açıyorum. Vim'de metin dosyalarını düzenlerken user1ve için 2 farklı şey görüyorumuser2

kullanici1

Ben yazarken vim filename, vim açılıyor ve düzenleme dosyası. Kapattığımda, dosyadaki metnin tamamı kayboldu ve Teminals komutunun / çıkışının daha önce mevcut olduğunu gördüm.

kullanici2

Ben yazarken vim filename, vim açılıyor ve düzenleme dosyası. Kapattığım zaman, ben içerideyken ekranda bulunan dosyanın bir kısmı vimhala ekranda görünüyor ve önceki tüm Terminal ekranları kaydırılıyor. Dosya sadece 1 satır olsa bile, vim'den çıktıktan sonra, ekran ilk satırı gösteriyor, hepsi dinleniyor ~ve ekranın altında komut istemini görüyorum.

ayrıntılar

$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)

vimrcDosyaları her iki kullanıcı için de karşılaştırdım ve tüm ayarların farkındayım ve bu davranışla ilgili herhangi bir ayar / yapılandırma bulamıyorum.

Bu davranış shell config ile ilgili mi? Olayları nasıl ayarlarım, böylece user1senaryoda gösterildiği gibi davranışı alıyorum ?

Böyle bir davranışı hangi anahtar kelimeyle arayacağımı bilmediğim için, bunu kolayca tanımlayamıyorum, ayrıca google’ı zor buluyorum. Haber ver, daha fazla detaylandırmalıysam.


Are user1ve user2aynı veya farklı makinelerde hesapları?
jasonwryan

@ jasonwryan Aynı makinede oturum açmak da aynı senaryoyu göstermektedir. @ warl0ck Bunun için teşekkürler.
mtk

1
Bu davranışı zorlamak ancak terminal türünü korumak istiyorsa, .bashrc veya diyerek .profile bir satır ekleyin takma vi = "/ usr / bin / vi $ *; açık"
Criggie

Yanıtlar:


24

Bu davranışın sebeplerinden biri, her kullanıcı için terminalin ayarlanması olacaktır.

Örneğin:

  • Kullanıcı1 TERM = xterm kullanıyor , bu durumda vim'den çıktığınızda terminal temizlenir.
  • Kullanıcı2 TERM = vt100 kullanıyor , bu durumda vimden çıktığınızda terminal silinmeyecek.

Terminal1 ile hangi terminalin kullanıldığını kontrol edin echo $TERMve aynı şekilde user2 için ayarlayın. bash için:

SÜRESİ = xterm; ihracat terim


+1 Tam / mükemmel çözüm. Teşekkürler !!! O kadar kolay olduğunu düşünmedim. Lütfen ne olduğunu açıklayabilir misiniz TERM? veya bazı kaynak linkleri üzerine gelin? Bunu anlamam gerek. Bu sadece bağlandığımız zaman etkiler puttymi?
mtk

Terminal ayarını macun seansında belirleyebilirsiniz, ancak kullanıcılar ortam değişkenlerini belirleyebilirler. TERM, terminal türünüzü tanımlayacak ve ayrıca bazıları, örneğin, xterm'in renkleri desteklediğinden daha fazla özelliğe sahip olacak ve satırları ve sütunları otomatik olarak güncelleyecektir. Vt100 kullanıyorsanız, terminalinizi yeniden boyutlandırdığınızda varsayılan olarak 24 satıra 80 sütun ekler, 24x80'e yapışdığını görürsünüz. Bu unix.stackexchange.com/questions/43945/… kontrol edin , benden daha iyi açıklayabilir.
BitsOfNix

Bu terminal davranışı, kabuk değil. Terminal emülatör ayarları, bağlanmak için kullandığınız araçlarla aynıdır. Fark burada ayrıntılı olarak açıklanmaktadır: unix.stackexchange.com/questions/4126/…
Leonid

@Leonid, tam olarak değil, macun kullanırsanız tanımlayabilirsiniz ve kullanıcı bir TERM tanımlamazsa bağlanırken güncellenecektir. Eğer kullanıcı tanımladıysa, haklısınız, hangi ortamın kullanıcı ortamındaki ayarı etkileyeceği önemli değil.
BitsOfNix

Bu çözüm hakkında bir not: YMMV. Her zaman "xterm" değil. Dwm (Dinamik Pencere Yöneticisi) kullanarak dBS'yi FreeBSD 10'da kullanmak için Senaryo 1'i elde etmek için "rxvt" kullanarak terminale sahte davranmak zorunda kaldım. .
Ryder

18

Bu davranış beni kullanmaktan uzak tutan tek şeydi screen. "Ekran" terminalini kullanıyor ve "xterm" olarak değiştirmek işe yaramadı.

altscreen on~ / .Screenrc seçeneğine seçenek eklemek onu çözdü. Ekranın el kitabından:

altscreen on|off

If set to on, "alternate screen" support is enabled in virtual terminals, just like in xterm.  Initial setting is `off'.

@Fox OP kullandığı TERM hakkında hiçbir şeyden bahsetmiyor, bu sadece alternatif bir cevap olabilir. Yine de bu sayfa çok üst sıralarda yer alırken ekran sorunu için de googling.
BartBiczBoyy

2
Bu hile yaptı! Anahtar Kelimeler: "vim istifa, görsel yapay nesnelerden ayrılıyor"
Jay Taylor,

0

Tüm bu seçenekleri denedim ama sonuç beklediğimden değildi. !cleartüm ekranı temizler ve önceki bash komutlarının arkasını bırakmaz.

Basit ve doğru bir çözüm, Terminal tipi dizgisini Terminal Bağlantıları altındaki Bağlantı ayarları -> Veri altındaki macun ayarlarında ayarlamak xtermve terminal hızlarını 38400,38400ayarlamaktır.

Ayarları kaydedin ve gitmeye hazırsınız.

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.