Vim'den harici bir programa metin kopyalama nasıl yapılır?


84

Vim'den bir metni kopyalayıp yapıştırmaya çalışıyorum. Görsel moda girmek için v yapıyorum , sonra y bloğumu seçtiğimde y .

Bu metni vimin panosuna kopyalıyor gibi görünüyor, çünkü p yapıştırır. Ancak başka bir programda (örneğin, Chrome), sağ tıkla tıklayıp yapıştır> doğru metni yapıştırmaz. Metni doğru panoya nasıl kopyalarım?

Yanıtlar:


62

Aşağıdakiler yalnızca özelliğiniz olduğunu vim --versiongösterirse işe yarar +xterm_clipboard. Değilse, ilave paketler kurmanız veya vim'i bu özellik eklendiğinde yeniden derlemeniz gerekir.


Bunun için iki seçenek var:

"+y

"normal" pano tamponuna kopyalar (böylece Ctrl + V tuşlarını kullanarak yapıştırabilirsiniz, sağ tıklayın ve "Yapıştır" vb.)

"*y

X11 seçimine kopyalar; bu tıklamayı orta tıklamayı kullanarak yapıştırabilirsiniz.

Bunu unutmayın "*ve "+her iki şekilde de çalışın. Yani başka bir uygulamada bazı metinler seçtiyseniz, kullanarak vim'e yapıştırabilir "*pve eğer bir metin kopyaladıysanız (Ctrl-C kullanarak), vim kullanarak yapıştırabilirsiniz "+p.


@Tshepang macuntan çalışmıyor. ne yapmalıyım ?
Rahul Patil

@RululPatil bilmiyorum; belki ayrı bir soru sorabilirsiniz, belki Süper Kullanıcı'da (bir Windows aracı olduğundan, orada daha iyi karşılanacaktır).
tshepang

@RahulPatil - Macunu kullanıyorsanız, dosyayı yerel makinenizde değil, uzak bir sunucuda düzenliyorsunuzdur. Genelde, uzak sunucu yerel makinenizdeki pano hakkında bilgi sahibi olmaz. Bir Linux masaüstünü kullanıyorsanız, X yönlendirme ile ssh yapabilirsiniz (X kütüphanelerini sunucuya kurmuş olmanız şartıyla), ancak macunlar pencere üzerinde çalışırken X'i çalıştırmazsınız, böylece onu yönlendiremezsiniz.
Hamish Downer,

1
Herkese merhaba, "+ y" nasıl
yazmalıyım

@AlindBillore: Komut modunda. Gerçekten, tuşlarına shift'sonra shift=o y(aynı anda değil, tabii ki vardiya dışında birbiri ardına).
Reid

31

Vim> = 7.3.74 kullanıyorsanız, bunu gerçekten vimrc'nize ekleyebilirsiniz:

set clipboard=unnamedplus

+Varsayılan olarak arabellek (sistem panosu) otomatik olarak kullanılacaktır . Sonra yank yapmak (kopyalamak) için sadece normal ykomutu kullanırsınız .

Bu davranışı oldukça can sıkıcı buldum, ancak dmetinler üzerinde çalıştığı komutları varsayılan ara belleğe koymak gibi komutlar , yani hızlı bir şekilde yapamadığım ddve internetten bir çizgi yapıştıracağım anlamına geliyordu .


2
+ bir pano düzenleyicisidir
Kit Ho

1
Son noktanıza gelince, dd"bir satır kesmek" anlamına gelir, bu nedenle beklenen davranış bu olur. Nadir bir durumda gerçekten bir çizgiyi unutulmak yerine silmek istediğinizde "_ddhile yapacaksınız.
user7089

Ayrıca @HamishDowner'ın cevabında yazdığı gibi: Aşağıdaki özellik sadece vim --versionsizin +xterm_clipboardözellik bulunduğunuzu gösterirse çalışacaktır . Değilse, ilave paketler kurmanız veya vim'i bu özellik eklendiğinde yeniden derlemeniz gerekir.
Rudolph9

24

Shift tuşunu basılı tutun ve fare imleci ile metni seçin.
Metin panoya kopyalanacaktır.

Bu aynı zamanda yapıştırmak için çalışır gelen vim için panoya.

Açıkçası, bu vimgibi bir terminalde çalıştırmak için çalışır xterm.


Metin seçerken shift tuşunu basılı tutmak mı istiyorsunuz? Ben böyle yapıyorum xterm.
nozimica

@nozimica: Evet.
Loop Space

Bu cevabın daha çok oyu olmalı ...
17:17

Çok satırlı seçimler için @ LoopSpace, bu set nu, etkinleştirildiğinde de satır numaralarını kopyalar . Muhtemelen :set nonuher seçimden önce satır numaralarını kısayolla değiştirmek veya komutu çalıştırmak
isteyebilirsiniz

MAC üzerinde seçenek tuşunu basılı tutun ve fare imleci ile metni seçin
abreschi

10

Ben standart "+gPve "+ykomutları kullanmak çok zor buluyorum . Ben de Ctrl-Ypanoya Ctrl-Pyapıştırıp tekrar panodan yapıştırdım. Bunu ekle.vimrc

nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP

5

Aldırma, cevabı buldum - vimin menülerine yazılmış.

"+y

Çok sezgisel.


Kullandığınız gvim?
nozimica,

@ nozimica- evet
ripper234

1
Bu, X'in altındaki bir xterm veya benzeri bir terminal emülatöründe çalışan vim'de de bulunur (vim +xterm_clipboardözelliği ile derlenmişse ).
Gilles

3

Sadece vim'e özgü olmayan bir cevap eklemek için: Ctrl+Shift+CUbuntu'da sistem panosuna kopyalamak için kullanabilirsiniz (eğer işlevsellik terminal emülatörünüz tarafından sağlanıyorsa, bunun için gnome-terminali sağlar). Ctrl+Shift+Vbaşka bir terminal penceresine Ctrl+Vyapıştırır, bir GUI uygulamasına düzenli yapıştırır.

Ek olarak, terminaldeki metni seçip orta tıklattığınızda, X11 panosundan yapıştırılır.


Bazı nedenlerden dolayı çalışmıyor. Sadece görsel mod ile seçin, ctrl-shift-C ile kopyalayın, daha sonra Ctrl-shift-V? Metin benim için kopyalanmıyor.
ripper234

2
@ ripper234: Eğer gvim kullanıyorsanız bu işe yaramaz. Crazy2be'nin dediği gibi, bu işlevsellik sizin terminal emülatörünüzden geliyor.
Reid,

@ ripper234: 1) Terminal emülatörünüz tarafından sağlanan bir fonksiyonelliktir (gnome-terminali bunu sağlar), 2) Ctrl + Shift + V terminale yapıştırmak içindir , GUI uygulamaları yine de her zamanki gibi Ctrl + V kullanır. Daha net hale getirmek için cevabı düzenleyeceğim.
crazy2be,

Vites değiştirme kontrol faresini kullanıyorsanız - metni seçin, bir arabellek penceresinden kopyalayıp yapıştırmak kolaylaşır.
Stephan

2

Vim hafif sürümünü yüklerseniz, varsayılan olarak, o zaman olmaz +xterm_clipboardözelliğini ( vim --version | grep xtermkullanmak için gereklidir), *ve +vim dışında kayıtlarını.

Bunu etkinleştirmek için vim'i kendiniz derlemeli ya da kendisiyle birlikte gelen bir vim sürümünü kurmalısınız. Ben vim-gnome kullandı: sudo apt-get install vim-gnome. Eğer yaparsanız vim --version | grep xterm, şimdi olduğunu göreceksiniz +xterm_clipboard.

Şimdi, hiç kopyalayıp +ve *ve çalışması gerekir.


2

Kontrol ettiğimde vim panoya destek vermiyordu:

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Vim-gnome kurdum ve tekrar kontrol ettim

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Şimdi sırasıyla "+ y ve" + p kullanarak kopyalayıp yapıştırabilirim.


1

ÜSTKRKT tuşunu basılı tutun ve fare kopyalamak için metni seçin.

Sonra başka bir programla yapıştırın CTRL + v.

Ubuntu 16.04'ümde terminalde çalışıyor. gvimVe diğer sistemler hakkında emin değilim .

görüntü tanımını buraya girin


Bu çalışmıyor.
Astrid

yaratıcı cevap
vidur punj

0

Sadece eklemek için, eğer bir şey çalışırsa vim'i saran terminali değiştirmeye çalışın (eğer terminalden vim kullanıyorsanız). Örneğin, panonun gnome-terminalinden erişilebilirken guake ile erişilemediğini öğrendim.

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.