Bıraktıktan sonra okuduğum içeriği insandan nasıl koruyabilirim?


24

Bu yüzden komutla man whateverilgili kullanım ve diğer bilgileri almak için kullanıyoruz whatever, bilginin ilgili bölümü bulunduğunda, manekranda kalan bilgilerle komutu bırakmak istiyorum . Böylece bir sonraki komutu yukarıdaki hakeme yazabilirim. Ancak mankomut, eski ekranı benzer şekilde kurtarmak için tüm ekrandan çıkar vim. bunu arşivlemenin bir yolu var mı?



Tüm öneriler iyidir, ancak man sayfasını görüntülemek için ikinci bir pencere de açabilirsiniz. Ve muhtemelen GUI man sayfa görüntüleyicileri de vardır.
Barmar

Yanıtlar:


38

Bunun mankendisi hakkında değil, tercih edilen çağrı cihazınız ( PAGERortam değişkeni) ile ilgili kullanımdaki terminalle ilgili olduğuna inanıyorum .

Çağrı cihazınızın büyük olasılıkla olduğunu tahmin ediyorum less(günümüzde tipik varsayılan çağrı cihazı ve açıklamasına uyuyor).

less-Xaradığınız şey boyunca size bir davranış getirebilecek bir seçeneğe sahiptir .

   -X or --no-init
          Disables sending the termcap initialization and deinitialization
          strings  to  the  terminal.   This is sometimes desirable if the
          deinitialization string does something unnecessary, like  clear‐
          ing the screen.

Örneğin PAGER="less -X" man man, test etmek için kullanılabilir ve bu davranışı tercih ederseniz, PAGERkalıcı olarak bu değere ayarlamayı düşünebilirsiniz .


Ne yazık ki, kaydırma geçmişini bozuyor.
musiKk

@musiKk Ubuntu 16.04'te benim için iyi bir akıllı unicode terminali (Linux konsolu değil) ve bir adam 2.7.5
kedi

3
@ musiKk: Eğer çağrı cihazından çıktıktan sonra man sayfasını geriye kaydırmak istiyorsanız, normal rasgele erişim yerine man sayfasından ileriye doğru ilerlemek için kendinizi sınırlandırmanız gerekir (çizgiler veya sayfalarla).
Peter Cordes

1
Ya da LESS=-X, değiştirmek zorunda kalmaktan kaçınmak için kullanabilirsiniz PAGER(% 100 gibi bir alana sahip tüm programlarda çalışmasına güvenmiyorum, insanda
çalışsa da

11

Çağrı cihazınız kadar az çalışıyorsanız (ki bu çok yaygındır), çağrı cihazınızı değiştirmekle uğraşmanıza gerek yoktur, sadece G / Ç yönlendirme yapın:

man <whatever you want to man> | cat -

Bu, terminale bir kopya basar, böylece ihtiyacınız olduğunda yukarı kaydırabilirsiniz.


1
Bu yaklaşımla ilgili bir sorun, uzun manuel sayfalarda, sizin için ilgilendiğiniz bölüme geri dönmenin zor olabileceği ve hem o bölümü hem de geçerli komut satırını görmeyeceğinizdir.
jlliagre

Diğer önerilerden hiçbiri bu sorunun üstesinden gelmiyor - sadece tek bir konsol penceresinde var. Ancak bununla birlikte her zaman komutunuzu yazabileceğinizi, biraz yukarı kaydırıp, aşağıya doğru yazılan komutunuza geri döndüğünüzü söyledi.
Brennen Smith

Önerim kesinlikle bu sorunun üstesinden geldi. İlgilendiğiniz manuel sayfa ekranda olduğunda man komutunu bırakırsınız ve komutunuzu aynı sayfada görünmeye devam ederken yazabilirsiniz.
jlliagre

2
-standart anlamına hangi ama catsonuçta O varsayar
loa_in_

1
Bu çoğunlukla anlambilim için - Ben her zaman stdin ile açık olmayı seviyorum.
Brennen Smith,

5

Sadece son derece sinir bozucu bir özellik sergilemek lessgibi sadece metin uygulamaları değil vim, yaptığım şey sadece terminalin ilgili komutları terminfoveri tabanından destekleme yeteneğini kaldırmak .

Bu komutlar smcupve rmcupüzerinde ve bir hareketin değişimi sağlamak için tasarlandı hangi cupkomutu (imleç pozisyonu) izin verildi.

İşte görevi otomatikleştirmek için kullandığım bir kabuk işlevi, en azından Solaris ve muhtemelen çoğu Linux dağıtımında çalışıyor:

fixterminfo()
{
  (
    [[ ! -d /tmp/terminfo ]] && { mkdir /tmp/terminfo || return ; }
    cd /tmp/terminfo || return
    TERM=xterm infocmp > xterm.src.org
    sed -e 's/rmcup=[^,]*,//'  -e 's/smcup=[^,]*,//' xterm.src.org > xterm.src
    if diff xterm.src.org xterm.src
    then
      echo xterm terminfo already patched
      return
    fi
    TERMINFO=/tmp/terminfo tic xterm.src
    if [ -f /usr/share/lib/terminfo/x/xterm ] ; then
      XTERM=/usr/share/lib/terminfo/x/xterm
    else
      if [ -f /lib/terminfo/x/xterm ] ; then
        XTERM=/lib/terminfo/x/xterm
      else
        if [ -f /usr/share/terminfo/x/xterm ] ; then
          XTERM=/usr/share/terminfo/x/xterm
        else
          echo xterm terminfo not found ; return
        fi
      fi
    fi
    if [ ! -f ${XTERM}.org ]
    then
      sudo cp ${XTERM} ${XTERM}.org || return
    fi
    cat /tmp/terminfo/x/xterm | sudo dd of=${XTERM}
  )
}

Terminal girişiniz geri dönmezse , komut dosyasında doğru terminal adıyla xtermdeğiştirmelisiniz xterm.


1
Evet ama o zaman bu başka programları dağıtacaktır (mutlaka çağrı cihazları veya küfürler değil, okuma satırı benzeri editörler vb.)
kedi

1
@ cat Mevcut olanlardan birini kontrol etmedim, ancak bu geçici çözümü kullandıktan sonra diğer programlarla ilgili herhangi bir sorun fark etmedim. Tuhaf davranacak programlardan örnekler var mı? Ayrıca başarısız olduklarından şüpheleniyorum, bu onların tarafında bir sorun. Bir terminal emülatörünün, her terminfo yeteneğini desteklemesi gerekmiyor. Sadece hangilerini desteklediğini bildirir ve onunla başa çıkmak için uygulamaya bağlıdır.
jlliagre

3

Çıkışı catkomuta bağlayabilirsiniz

man man|cat

veya insanı kendine çağıran bu örnekte olduğu gibi, varsayılan çağrı cihazı yerine kullanın

PAGER=cat man man

2

Çağrı cihazını değiştirmeden , ortamların çoğunda çalışabilecek borulara sahip bir çözüm :

İçin örnekler man ls

  • Tüm man sayfasını ekranda bırakman ls | cat
  • Bir paginated Oku adam bunu hiç vakit bırakarak imkanı ile çıkışını, q :man ls | more
  • Man içeriğini bir desenle filtreleyin ve ekranda eşleşen çizgileri tutun:man ls | grep somestring

-3

2016, sadece ikinci bir terminal veya sekme veya pencere aç veya çevrimiçi adamı oku ..


Ve bu açık pratik bir çözümdür.
Braiam

1
@Braiam Terminal cep telefonu ekranındaysa pratik değildir.
NathaneilCapital

@NathaneilCapital tmux öğrenme zamanı geldi gibi geliyor.
Michael Hampton

-3

Sunucularımda bile (FreeBSD) X ve xfce'i yüklüyorum. Sonra terminal emülatörleri için büyük bir tampon (örn. 10 000 satır) tahsis ettim, böylece man sayfasını bunlardan birinde tamamen kaydırabiliyorum ve komutu monte etmek için ayrı bir terminal örneği kullanabiliyorum. Bir tedavi çalışır.

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.