Çok sayfalı metin terminalden panoya nasıl kopyalanır?


13

Makinemdeki bir yazılımın kılavuz sayfasını görüntülüyordum ve bu metnin bir kısmını kopyalayıp yapıştırmam gerekiyordu, ancak metin birden fazla sayfaydı. Çıktıyı bir dosyaya yönlendirebileceğimin ve ihtiyacım olan metni kopyalamak için gedit gibi UI tabanlı yazılımlar kullanabileceğimin farkındayım . Ama bu terminalden yapılabilir mi?

Joseph bir komut satırı yöntemi önerdi (Benim için biraz karmaşık, henüz Linux'ta düzenli ifadelerle iyi değilim). Ama hala terminaldeyken fareyi kullanarak bunu yapmanın bir yolu olup olmadığını merak ediyorum .

Umarım genel bir cevap alırım, ancak Ubuntu kullanıyorum.

Yanıtlar:


9

Birkaç kusurlu, ama belki de yararlı fikirlerim var.

Yöntem 1 - Mus.

Terminal kaydırma çubuğunu kullanın.

Ayrıntılar (varsayalım xterm; diğer terminaller için ayarlamalar gerekecektir.)

  1. Henüz değilse kaydırma çubuğunu etkinleştirin. ( xtermCtrl + Button2 ile aldığınız menüde.)
  2. Seçenekle lessçalışmadığından emin olun -c(bu seçeneği LESSortam değişkenimde etkinleştirdim , ancak yapmak üzere olduğumuz şeyle çakışıyor, bu yüzden -ckapatmak için yazmak zorundayım.)
  3. lessİstediğiniz komutları kullanarak , kopyalamak istediğiniz ilk satır ekranda görünecek şekilde yukarı veya aşağı kaydırın.
  4. Üçlü-Button1 seçtiğiniz başlangıç ​​çizgisini seçmek için.
  5. Kopyalamak istediğiniz son satır ekranda görünene kadar aşağı kaydırın. Bir /aramayı değil, yalnızca boşluk çubuğunu veya diğer basit kaydırma tuşlarını kullanmalısınız - buradaki nokta, lesskopyalanabilmeleri için tüm satırları terminale göndermektir.
  6. Seçimi uzatmak için seçtiğiniz bitiş çizgisindeki Button3.

Olası zorluk: geri kaydırma arabelleğiniz yeterince büyük olmayabilir. Bu kaynak veya komut satırı seçeneği xtermile değiştirilebilir , ancak zaten çalışan bir xterm değiştirmek için bir yol bilmiyorum.saveLines-sl

Yöntem 2 - köpük olmayan.

Metni göndermek için |(boru) komutunu lesskullanın xclip.

Detaylar:

  1. lessİstediğiniz komutları kullanarak , kopyalamak istediğiniz son satırı ekranın üstünde konumlandırmak için yukarı veya aşağı kaydırın . Tamamen sonuna kadar kopyalamak istiyorsanız bu adımı ve sonraki adımı atlayabilirsiniz.
  2. mSeçtiğiniz son konumda bir işaret ayarlamak için (mark) komutunu kullanın. İşaretler kendi başlarına yararlı bir özelliktir ve bunları zaten bilmelisiniz vi, ancak bilmiyorsanız: herhangi bir harf olabileceği mxbir işaret koyar xve 'xsizi daha sonra oraya döndürür.
  3. Şimdi kopyalamak istediğiniz ilk satır ekranın en üstünde olacak şekilde yukarı kaydırın.
  4. Pipe komutunu kullanın: |xbu, harici bir komut girmeniz için bir istem getirir. Bu komutta xkullandığınız işaret harfiyle mveya $"sonuna kadar" olmalıdır. Buraya yazın xclip.

Tüm kılavuz sayfasının kopyalanması basit bir şekilde azalır g|$xclipEnter.

Uyarı (yani başıma gelen korkunç şey ): süreç grubunun bir xclipparçası olarak çalışan yarı arkaplanlı olacaktır less. Askıya almayı denerseniz less, aynı terminalde başka bir işe başlayın ve içine yapıştırın, çalışmaz. Sonra man/ lessişi ön plana çıkardığınızda aniden macun gelir. Bence bu bir xcliphata olarak görülmeli ...


2
Mac kullanıcıları, xclip yüklü değilse pbcopy kullanabilirler.
Mike Hedman

3

Bunun gibi tmuxveya screengenellikle böyle bir işlevselliğe sahip olan terminal çoklayıcı (örneğin, geri kaydırma arabelleğinin bir kısmını dosyaya koymak veya bir komuta borulamak için) ve bunları kullanmak genellikle iyi bir fikirdir, bu nedenle bunlardan birine göz atmak isteyebilirsiniz. .


2

Nixcraft'ta belirtildiği gibi :

  1. Alın xclip:

    sudo apt-get install xclip 
    

    veya

    yum install xclip
    

    RPM tabanlı bir sistemde.

  2. man man | your_magic_here | xclip -selection clipboard
  3. Ctrl+ Vkalbinizin içeriğine. Bunun -selection clipboardyerine orta fare tıklamasıyla yapışmayı seçmek için kaldırabilirsiniz (birincil seçim denir).

Not your_magic_hereBir metin filtresi için bir yer tutucu (olduğu sed/ awk/ perl/ ...) Korkarım bu yüzden tarif etmedi adam sayfasının istenen kısmı Spesifik kullanım örneğiniz göre seçer ben olamayacağı belli bir örnekle.


Apart xcliporada da xsel(ve diğerleri). Bu pano tartışmasına da göz atmak isteyebilirsiniz .
peterph

Fareyi kullanarak bunu yapmanın bir yolu var mı? Böylece fare sayfanın sonuna geldiğinde sayfa kaydırılır.
Muhammed Gelbana

0

Terminal programınıza bağlıdır, ancak çoğu terminal programı seçilen metni kaydetme işlevine sahip değildir.

LXTerminal, uxterm, Konsole ve GNOME Terminal'in hepsinde bu 'özellik' bulunmuyor gibi görünüyor, ancak buna sahip başkaları da olabilir. Terminal programınızın menü yapısına bakın ve "Seçileni kaydet" gibi bir şey olabilir


0

Kullanmak varsayarsak gnome-terminalve lessbir çağrı cihazı olarak manşunları yapabilirsiniz:

  • Run lessiçin manbirlikte -Xörneğin devre dışı alternatif ekrana anahtarı:LESS=-X man less

Bu, manterminal öykünücüsü geçmiş arabelleğinin çıktısının eklenmesine izin verecektir . Daha fazla ayrıntı için bu yanıta bakın /unix//a/38638/87918 .

  • Kopyalamak istediğiniz metnin son sayfasına gidin. (Kaydırılan tüm metinler, kaydırma sırasında geçmiş arabelleğine kaydedilir)
  • Fareyi gnome-terminalpencerenin üst kenarına sürükleyerek, son sayfadan başlayarak farenin başındaki metni seçin . Metin seçiminin ayrıntılı süreci burada açıklanmıştır :

Bu Gnome Terminalinde çalışmaz. Bunun yerine, sol fare düğmesiyle seçimi başlatmak ve bunu yaparken fare imlecini pencerenin kenarına (veya pencerenin dışına) sürüklemektir. GT, işlemdeki seçimi genişleterek sizin için bir şeyler kaydırır. GT'nin kaydırılması, bunun xterm'lerden muhtemelen daha iyi, makul derecede kullanışlı ve sezgisel bir süreç olması yeterince hızlıdır.

  • Şimdi, istediğiniz yere kopyalayıp yapıştırabileceğiniz bir metin seçtiniz (istediğiniz sayfalar).

0

Kullanın | Wumpus Q. Wumbley tarafından ikinci seçeneğinde cevaplandığı gibi işaretlerle daha az komut verin , ancak zaten var olan bir dosyaya amaç için eklemek için tee kullanarak yönlendirme:

|tee >> ~/helpaggregator.txt

Varolan bir dosyayı yeni komutlar öğrenirken genellikle danışılması gerektiğinden ve birinin onları bir arada tutmayı sevdiğinden dolayı öneririm. Dahası, sekme tamamlama işe yarar.

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.