Yerel kaydırma / tarihten vazgeçmeden Mosh'u kullanın?


63

moshYerel kaydırmadan vazgeçmeden kullanmanın bir yolu var mı ?

Temel olarak, bazı durumlarda, IP-dolaşım gerçekten yararlı ve gerekli, ancak ekstra terminal emülasyonu ve anahtar öngörüsü yalnızca yerel geri kaydırma tampon satırlarından ve oturum geçmişinden kurtuluyor gibi görünüyor.


Yanıtlar:


43

Filippo Valsorda, iTerm 2, tmux ve mosh içeren OS X için bir çözüme sahiptir .

Çözümünde uzaktaki bir kabuğa bağlanmak için tek bir pencere / sekme kullanılıyor. Kabuk, bağlantı kopukluklarında (örn. Bağlantı hatası, IP değişiklikleri, dizüstü bilgisayar yeniden başlatmaları) hayatta kalır ve dokunmatik yüzey, kopyala-yapıştır ve renkler ile kaydırma işlemini destekler.

Uyarılar, kaynaktan mosh oluşturmanız, kaydırmanın yerelden daha az akışkan olması ve tıklatmayla sürüklemenin aktarılması olduğundan, Seçme Seçeneğini tutmanız gerekir.

  • iTerm

    Terminal Profili ayarlarında, xterm fare raporlamasını etkinleştirin ve Rapor Terminal Türü'nü xterm-256color olarak ayarlayın .

  • tmux

    ~/.tmux.confSunucuda aşağıdakini ayarlayın . Bu ayarlarla, eklemeye çalışırsanız ve oturum yoksa, yeni bir tane oluşturulur. Ayarlar ayrıca fare etkileşimlerini de etkinleştirir (ve böylece dokunmatik yüzey kaydırma).

    new-session
    set-window-option -g mode-mouse on
    set -g history-limit 30000
    

    Not: Daha yeni tmux'larda (yani> 2.1), bildirildiği gibi tmux -V, çeşitli fare seçenekleri (fare yeniden boyutlandırma bölmesi, fare modu vb.) Tek bir seçeneğe yeniden yazılmıştır mouse, bu nedenle ikinci satırı değiştirmeniz gerekir. set-window-option -gfareon yerine yukarıda .

    Bu fare kaydırma aynı zamanda tmux içinde nasıl kaydırılır makalesinde açıklanan klavye kaydırma modundayken (örneğin Ctrl- bsonra [) da çalışacaktır .

  • savrulun

    Sabit mosh yapısı eskidir ve fare raporlamayı (ve dokunmatik yüzey kaydırma) desteklemez. En son sürümü yüklemek için aşağıdakileri yapın:

    OS X (müşteriniz)

    brew install --HEAD mobile-shell
    

    Linux / UNIX (sunucu)

    git clone https://github.com/keithw/mosh.git
    cd mosh/
    sudo apt-get build-dep mosh
    ./autogen.sh && ./configure && make
    sudo make install
    

Şimdi, bağlanmak için aşağıdakini yazın:

mosh HOST -- tmux a

5
Bağlantıdaki önemli bilgileri satır içine yapıştırmak için iyi bir form olarak kabul edilir.
HalosGhost,

2
Her ne kadar bu cevap teknik nedenlerden dolayı düşürülmüş olsa da, mosh kullanarak yerel müşteriye düzgün bir şekilde geri dönmenin en iyi yolu (sadece?).
jayhendren

@ jayhendren: Ya da sadece Ebedi Terminal'i kullanabilirsiniz .
Dan Dascalescu

Küçümseme gerek yok. Yorumum 2014'ten yapıldı. Eternal Terminal'in ilk sürümü 2017'de yapıldı.
jayhendren

15

Terminal emülasyonu, yosun tasarımına oldukça derin bir şekilde yapılır , yani hayır. Mosh, hem istemcinin hem de sunucunun, ekranın şu anda "nasıl göründüğü" konusundaki yerel fikrini koruyarak çalışır ve bu, sunucunun terminal öykünmesi yapmasını gerektirir. Bu, istemcinin bir süre uzakta kaldıktan ve bazı verileri kaybettikten sonra ekranın içeriğini yenileyebilmesidir.

Ben mosh IP dolaşım özelliği ile bir uygulama ama terminal öykünme olmadan bir uygulama oldukça farklı (ama daha basit) bir uygulama olacağını düşünüyorum. Böyle bir uygulama için veri kaybı (müşterinin bir süre kapalı kaldığı durumlar dahil) ekran içeriğinin kaybolmasına veya bozulmasına neden olur. Bu, kullanıcı için çok önemli olmayan bir uygulama (örneğin kabuk) veya yeniden boyama özelliğine sahip bir uygulama (örn vi. Control-L kullanarak) kullanıyorsa bu kabul edilebilir bir sınırlamadır .

Mosh uygulayıcıları, yerel terminalinizin artık yapamayacağı gerçeğini telafi etmek için uygulamada geri dönüş desteği planlıyorlar . Sanırım bunun screenkaydırma kaydırma tamponu gibi biraz çalışması gerekecek : kaydırma çubuğu ve fare tarafından değil, tuş vuruşlarıyla kontrol ediliyor.


4

Ebedi Terminal ( https://mistertea.github.io/EternalTerminal/ ), yerel kaydırma özelliğini destekleyen ve hala IP dolaşımına izin veren Mosh'a bir alternatiftir. ET, yazma tahminini yapmaz, bu nedenle, yüksek gecikmeli bir bağlantınız varsa (bir drone veya cep telefonundan sysing), ancak kişisel olarak ET istediğim her şeyi yapar ve kaydırma işlemini destekliyorsa uygun olmayabilir.


Bu harikaydı
Soorena

ET şaşırtıcı ve daha fazla savunuculuğa ihtiyaç duyuyor .
Dan Dascalescu

1

Terminal-> Tercihler-> Profiller-> Klavye'deki "Alternatif ekranı kaydır" seçeneğinin işaretini kaldırmak benim için düzeltti.


1
Bu cevap hiç mantıklı değil, hatta böyle bir menü nereden alıyorsunuz?
15’te

3
Tercihler ayarı var, ancak işaretinin kaldırılması yalnızca yerel penceremde kaydırmaya çalışmama neden oldu; bana uzaktaki seansın üstünden kaybolan hiçbir şey göstermedi.
mARK

2
Bunu denedim, ama mosh oturumunda kaydırma yapmanıza izin vermiyor
magodiez
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.