Birkaç yol var. Bahsedilen yollardan bazıları (sanırım) tmux, ekran, vim, emacs ve kabuğu içerir. Emacs veya ekran bilmiyorum, bu yüzden diğer üçünden geçeceğim.
tmux
X seçimi olmasa da, tmux'un erişebileceği bir kopyalama modu vardır prefix-[
( varsayılan prefix
olarak Ctrl+ B). Bu mod için kullanılan arabellek ayrı ve tmux'a özeldir, bu da birkaç olasılık açar ve doğru durumlarda X seçimlerinden daha çok yönlü hale getirir.
Bu moddan çıkmak için q; gezinmek, kullanmak vim
veya emacs
ciltlemek için (default = vim), hjkl
hareket v/V/C-v
için, karakter / satır / blok seçimi vb. için. Seçiminizi yaptığınızda, Enterkopyalamak ve moddan çıkmak için tuşuna basın.
Bu arabellekten yapıştırmak için kullanın prefix-]
.
Kabuk
Herhangi kurulum X11
: varsayılan olarak iki program ile gelmek gibi görünüyor xclip
ve xsel
(tür aynı zamanda her ikisi de bulunur nasıl gibi startx
ve xinit
). Diğer cevapların çoğu belirtiyor xclip
ve ben xsel
onun kısalığını gerçekten seviyorum , bu yüzden kapsayacağım xsel
.
Gönderen xsel (1x) :
Giriş seçenekleri
-a, --ekle
seçime standart girdi ekle. İma -i .
-f, --takip et
standart girdi büyüdükçe seçime ekleyin. İma -i .
-i, --input
seçime standart girişi okuyun.
Çıktı seçenekleri
-o, --çıkış
seçimi standart çıktıya yazar.
İşlem seçenekleri
-c, - temizle
seçimi temizle. Tüm giriş seçeneklerini geçersiz kılar.
-d, - sil
Geçerli seçimin silinmesini isteyin. Bu sadece seçimi temizlemez, aynı zamanda seçimin seçilen içeriğin silinmesini sağladığı programa da istekte bulunur. Tüm giriş seçeneklerini geçersiz kılar.
Seçim seçenekleri
-p, --primary
PRIMARY seçiminde çalışır (varsayılan).
-s, - ikincil
SEKONDER seçiminde çalışır.
-b, --clipboard
CLIPBOARD seçiminde çalışır.
Ve bu bilmeniz gereken her şeyle ilgili. p
için (veya başka bir şey) PRIMARY
, s
için SECONDARY
, b
için CLIPBOARD
, o
çıkış için.
Örnek: Diyelim ki foo
bir TTY'nin çıktısını kopyalayıp bir hata raporu için bir web sayfasına yapıştırmak istiyorum. Bunu yapmak için, TTY / X oturumuna / oturumundan kopyalamak ideal olacaktır. Yani soru TTY'den panoya nasıl erişebilirim?
Bu örnekte, X oturumunun görüntülendiğini varsayacağız :1
.
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
Sonra Ctrl-V
her zamanki gibi forma girebilirim.
Şimdi destek sitesindeki birisinin sorunu düzeltmek için çalıştırmam için bir komut verdiğini söyleyin. Karmaşık ve uzun.
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
Pizza siparişi komut satırının verimli kullanımı gibi görünüyor.
...hareketli.
gayret
İle derlenmişse +clipboard
(Bu önemlidir! Kontrol edin vim --version
), Vim X PRIMARY
ve CLIPBOARD
seçimlere erişebilmelidir . İki seçime sırasıyla *
ve +
kayıtlarından erişilebilir ve boş zamanlarınızda diğer kayıtlarla aynı şekilde yazılabilir ve okunabilir. Örneğin:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
Eğer vim kopyanız X seçimlerine erişimi doğrudan desteklemiyorsa, bu dünyanın sonu değildir. xsel
Tekniği sadece son bölümde açıklandığı gibi kullanabilirsiniz .
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
Birkaç anahtar kombinasyonunu bağlayın ve iyi olmalısınız.
:%y+
Vim'de kullanıyorum , vim-speak "yank (copy) '+' register (XPRIMARY
clipboard) 'a tüm satırları .%
Spesifik olmak istiyorsanız bir aralıkla değiştirebilirsiniz . Ancak üç uyarı vardır: 1. Şimdi, kopyalayabilmeniz için herhangi bir metni bir dosyaya kaydetmeniz gerekir. Bu,xclip
cevaplarda bahsedilen komutun aksine . 2. Nasıl vim yapacağınızı bilmiyorsanız, bu sıkıcı olabilir. 3. Bunu yalnızca vim derlenirken belirli bir özellik etkinse yapabilirsiniz. GVim yüklerseniz, vim'in hem GUI'sinde hem de terminal örneklerinde varsayılan olarak etkinleştirilmelidir.