Bir metin bloğunu sistem panosuna kopyalamanın bir yolu var, böylece başka bir programa yapıştırabilir miyim?
cpip
, cpi{
.
Bir metin bloğunu sistem panosuna kopyalamanın bir yolu var, böylece başka bir programa yapıştırabilir miyim?
cpip
, cpi{
.
Yanıtlar:
İçin X11 tabanlı sistemlerde (. Yani Linux ve diğer birçok UNIX benzeri sistemler) birbirinden bağımsız iki blokluk vardır:
^C
ve yapıştırılır ^V
(MS Windows gibi).OS X ve Windows sistemleri sadece bir panoya sahiptir.
X11 sistemleri için bu panoları sizin için senkronize eden birçok araç vardır; bu yüzden aynı görünüyorlarsa, bunlardan birini çalıştırıyor olabilirsiniz.
Vim'de bu panolara karşılık gelen iki özel kayıt var:
*
PRIMARY kullanır; anımsatıcı: S katran olduğunu S (copy-on için seçilen ler seçtiklerini)+
CLIPBOARD kullanır; mnemonic: CTRL PLUS C (ortak tuş bağlantısı için)Windows ve OS X'te +
ve arasında hiçbir fark yoktur *
, çünkü bu sistemler yalnızca tek bir panoya sahiptir ve her iki kayıt da aynı şeyi gösterir (hangisini kullandığınızın önemi yoktur).
Bu kayıtları herhangi bir kayıt olarak kullanabilirsiniz. Örneğin, İLKÖĞRETİM panosunu kullanarak *
ile y
ve p
komutları:
"*yy
"*p
Bunu daha uygun bir anahtar kelime olarak kullanabilirsiniz:
noremap <Leader>y "*y
noremap <Leader>p "*p
noremap <Leader>Y "+y
noremap <Leader>P "+p
Her zaman manuel olarak kullanmak yerine, sistemin panosu ile arayüzü "otomatik olarak" yapmak istiyorsanız, clipboard
değişkeni ayarlayabilirsiniz :
unnamed
kullanmak *
(belirli üzerine, birincil)unnamedplus
için ayarlayın +
(CLIPBOARD, ^C
)Şimdi, sadece kullanmak yy
Vim'in isimsiz kaydı yerine sistemin panosuna p
girecek ve sistemin panosunu yapıştıracak.
Ayrıca, bu kayıtlara tıpkı herhangi bir sicil gibi atayabilirsiniz let
:
:let @+=42
:let @*=42
clipboard
Ayar (örneğin filtreleri hariç gibi) biraz daha seçenek vardır; ama bunlar temel. Tüm :help 'clipboard'
hikaye için bakınız ;-)
GVim kullanıyorsanız, kullanırken kopyala seçim davranışını elde edebilirsiniz
:set guioptions+=a
.
Bu, ancak X11 sistemleri (İLKÖĞRETİM için kopya) varsayılan olarak etkindir değil (Panonuzun geçersiz kılar herhangi bir metin seçmek gibi) MS Windows ve OSX üzerinde.
+clipboard
mı?Vim, +clipboard
herhangi birinin çalışması için özellik bayrağını gerektirir ; senin Vim kullanarak bu olup olmadığını kontrol edebilirsiniz :echo has('clipboard')
(çıkış ise Vim içerisinden 0
, bu kadar değil o eğer mevcut 1
olduğunu,) ya çıktısını kontrol
vim --version
için +clipboard
.
Çoğu Linux dağıtımı, varsayılan olarak sahip olmayan "minimum" bir Vim yapısıyla birlikte gelir +clipboard
, ancak genellikle yükleyebilirsiniz:
vim-gtk
veya yükleyin vim-gnome
.vim-X11
ve çalıştırın ( daha fazla bilgi ).vimx
vim
gvim
(bu +clipboard
normalde mümkün olacaktır vim
).Ayrıca kullanabilirsiniz xclip
, xcopy
ya da xsel
metni panoya kopyalamak için; çözümler için aşağıdaki sorulara bakın:
SS11 üzerinden X11 iletmeyi etkinleştirirseniz, uzak makinelerde de bir pano kullanabilirsiniz. Bu özellikle yukarıdaki ipuçlarında kullanışlıdır, çünkü xclip
masaüstünüzün panosuna erişmek için kullanabilirsiniz
. Parçaladığınız makinedeki Vim hala bu +clipboard
özelliğe ihtiyaç duyacak .
Bu ForwardX11Trusted
ayar gerektirir ve yalnızca X11 oturumunuz üzerinde sunucuya neredeyse tam denetim sağladığı için yalnızca güvenilir sunucularla yapılmalıdır :
$ ssh -XY myhost
Bu ayarları kalıcı kılmak için ( -XY
her seferinde ekleme yapmanıza gerek kalmaz ), aşağıdaki gibi bir şey yapabilirsiniz ~/.ssh/config
:
# Do **NOT** set this globally; it gives the server complete control over
# your X11 session.
Host myhost
ForwardX11 yes
ForwardX11Trusted yes
Neovim pano desteğini yeniledi. Dahili arayüz çıkarıldı ve bu şekilde bir dış yardımcı çağrı sistemi ile değiştirildi xclip
, xsel
ya da
pbcopy
/ ' pbpaste
.
Bu yardımcı programları otomatik olarak almalı ve kullanmalıdır. OS X'te pbcopy
ve pbpaste
varsayılan olarak erişilebilir olması gerekir, Linux'ta muhtemelen xclip
en çok kullanabileceğiniz
sürüm olduğundan yüklemek istersiniz (aslında uyumsuz bayraklara sahip iki sürümü vardır . Bu gerçekten aptalca).xsel
Ayrıca :help clipboard
Neovim'de bakınız .
"<Space>
almak için tuşuna basmanız gerekebilir "
. Bu durumda , kopyalamak için basmanız "<Space>+y
veya basmanız gerekir "<Space>*y
.
"
adlandırılmış birçok kaydı seçebilecek olduğudur. "+
sihir değil, sadece kayıt +
. Yani, örneğin, aynı anda üç şeyi kopyalayıp tek tek yapabilirsiniz bunların her yapıştırmak istiyorsanız "1y
, "2y
ve "3y
daha sonra "1p
, "2p
ve "3p
. Bu gerçekten güçlü ve neredeyse hiç bir editörde yoktur. Diğer ilginç bir kullanım da depolanmış makrolara bakmaktır. Örneğin, kayıt yaparsanız qq
, ancak düzeltmeniz gerektiğini anlarsanız, şunları yapabilirsiniz: temp satırında "qp
, düzeltmek ve "qd
.
Diğer cevaplar, tamponunuzdaki metni sistem panosuna nasıl kopyalayacağınızı kapsar. Başka bir ortak çalışma başka metin kopyalamak için kayıt panoya. Örneğin, içine zaten bazı metinler eklediyseniz "
(varsayılan kayıt), bu kaydı panoya yüklemek isteyebilirsiniz.
Bunu ile yapabilirsiniz :let
:
let @+=@"
- varsayılan kayıt defterini panoya kopyalarlet @*=@"
- varsayılan kaydı X11 birincil seçimine ("fare panoya") kopyalarlet @+=@a
- kayıt defterinden a
panoya kopyalaBunun genel olarak kayıtlar için geçerli olduğuna dikkat edin: let @a=@b
kayıt b
için kopyalar a
.
Gönderen http://vim.wikia.com/wiki/Accessing_the_system_clipboard
set clipboard=unnamedplus
Bu, varsayılan Vim kaydını +
sistem panosuna bağlı olan kayıt defterine değiştirir . Kimden :h clipboard-unnamedplus
:
clipboard-unnamedplus
unnamedplus A variant of the "unnamed" flag which uses the
clipboard register '+' (quoteplus) instead of
register '*' for all yank, delete, change and put
operations which would normally go to the unnamed
register. When "unnamed" is also included to the
option, yank operations (but not delete, change or
put) will additionally copy the text into register
'*'.
Only available with the +X11 feature.
Availability can be checked with:
if has('unnamedplus')
:version
İçerdiği özellikler listesinde + X11'in görünüp görünmediğini görmek için Vim içinde kullanabilirsiniz . Ayrıca 'isimsiz' özelliğinin mevcut olup olmadığını kontrol edebilirsiniz. :if has('unnamedplus')⏎ echo 'yes'⏎ endif
Eğer Linux'ta değilseniz, isimsiz yerine kullanmanız gerekir.
Onu destekleyen yapılarda, adlandırılmış kayıt *
sistemi sistem panosudur. Vim'den sistem panosuna metin "*ykopyalamak için , görsel modu kullanarak metni seçebilir, ardından sistem panosuna kopyalamak için tuşuna basabilirsiniz .
Tersine, "*pmetni sistem panosundan Vim'e yapıştırmak için kullanın .
Gvim kullanmanızı öneririz ve şunu da ekleyin .vimrc
:
source $VIMRUNTIME/mswin.vim
behave mswin
Bu destek sağlayan CtrlC, CtrlX, CtrlVWindows not defteri gibi.
Bu da örneğin, diğer bazı yaygın, Windows kısayollarını katacak unutmayın CtrlSiçin :w
, CtrlAtüm seçmek vs.
Diğer her cevap, kayıtlarla ilgili tüm önemli hususları kapsamıştır. Kullandığım bir şeyi daha eklemek istiyorum.
Vim'de görsel olarak seçilen metni doğrudan panoya kopyalamanın bir yolu var . Sadece bunu vimrc dosyanıza koyun :
set guioptions+=a
Ve bununla görsel olarak bir metni ne zaman seçerseniz, panoya kopyalanacaktır. Bu konuda daha fazla bilgi için,:help guioptions
Btw, bu sadece gVim içindir.
guioptions+=a
Carpetsmoker'in cevabında da bahsedilmiştir.
Ayrıca panoya belirli bir desen koymak için global bir komut kullanabilirsiniz. Bilginin bir dosyaya dağıldığı ve elle başa çıkmanın hatalara ve yorulmaya eğilimli olduğu durumlarda faydalı olabilir.
Önce bilgileri alacak olan kayıt defterini temizle
:let @a=""
Sonra deseni içeren tüm satırları kopyalayın.
:g/pattern/yank A
Sonunda bilgileri sistem panosuna aktarma (kopyalama)
:let @+=@a
panoya "içerik" içeren her satırı doğrudan panoya kopyalamaya çalışırsanız, pano yeni içerik ekleme özelliğine sahip olmadığından çalışmaz; bir kerede desen ve sonra panoya koyarak.
OBS: Kullanmadan önce yazıcının tutulması gerekir ve yazıcının UPPERCASE sürümünün kullanılması bize içerik eklememize izin verir, aksi halde çalışmaz.
Nasıl +clipboard
işe yarayacağımı bulamıyorsanız, ki nedense yapamadım, o zaman bunu yapabilirsiniz.
Yapmam, sadece dosyanın bir bölümünü kopyalamak istediğiniz varsayarsak shift
+ v
görsel moduna geçmek ve sadece ben kopyalamak istediğiniz satırları vurgulamak için. O zaman bunu yapıyorum.
# Linux Wayland
:'<,'>w !wl-copy
# Linux Xorg
:'<,'>w !xclip -selection clipboard
açıklama
'<,'>
- bir aralık seçmek için görsel modu kullandığınız anlamına gelir (bunu yazmazsınız)w !{cmd}
- menzili stdin'e yazın cmd
, daha fazlası için:help w_c
wl-copy
ve xclip
metinleri yayınlayabileceğiniz programlardır ve sistem panonuza eklerler.Ayrıca, bu sizin tarihinize girdiğinde, her şeyi bir daha yazmak zorunda değilsiniz. Sadece görsel mod ile seçin, yazın w
sonra yukarı basın ve komut otomatik olarak tamamlanmalıdır. Ayrıca, görsel modu kullanmak zorunda değilsiniz. İstediğiniz aralığı ayarlayabilirsiniz.