Vi düzenleyicide yapıştırma içeriği nasıl kopyalanır

Kullanmayı denedim Ctrl + V içeriği bir vı düzenleyici belgesine yapıştırmak için, ancak Ctrl + V macun olarak yorumlanmaz.

Öncelikle düzenleme modunda olduğunuzdan emin olun (tuşuna basın i). Sonra yapıştırabilirsiniz Ctrl+Shift+V. eğer bir terminal emülatöründeyseniz gnome-terminal (veya sağ tıklama menüsünden "Yapıştır" ı seçin).

Ayrıca yazabilirsiniz :set paste otomatik girintiyi vb. Devre dışı bırakmak için yapıştırmadan önce vim'de. Sonra :set nopaste içeriği yapıştırdıktan sonra.

Ayrıca kontrol edin bu soru açık stackoverflow.com daha fazla bilgi için.

Satırları kopyalamak / yapıştırmak istiyorsanız vim (pano içeriğini yapıştırmanın aksine), aşağıdakileri kontrol etmek isteyeceksiniz: çekmek emretmek. İşte bir hile sayfası yardımı dokunabilir.

Vi (ve Vim), Gedit gibi normal bir metin düzenleyicisine kıyasla çok farklı çalışır. Aynı zamanda oldukça dik bir öğrenme eğrisine sahiptir. Bazı temel komutları öğrenmek istiyorsanız, şununla başlayın bu interaktif öğretici.

Ancak, soruyu cevaplamak için. Sistem panosunun içeriğine plus kaydı üzerinden erişilebilir. Bu nedenle, sistem panosundan bir şey yapıştırmak için Normal moddan tuşuna basabilirsiniz: "+p (Aynı anda değil, birbiri ardına).

Her zaman kullanırım. Shift+Insert terminale metin yapıştırmak istediğimde, tüm terminal programlarında çalışır.

(Ayrıca, basamayacağınız bir dizüstü bilgisayarı asla almamamın nedeni de budur Insert ikincil bir tuşa basmadan)

  1. İçeriği kopyalamak ve yapıştırmak istiyorsanız aynı dosya içinde, kullanma yank ve paste.

  2. İçeriği kopyalamak ve yapıştırmak istiyorsanız terminaller arasında, ilk dosyayı açın, istediğiniz metni çekin, ardından ikinci dosyanızı vim içinde açın (örn. :tabnew /path/to/second/file) ve tuşuna basın p yapıştırmak için.

  3. İçeriği kopyalamak ve yapıştırmak istiyorsanız vım'den harici bir programa, sistem panosuna erişmeniz gerekir. Ubuntu kullandığınızı varsayıyorum. Vim'in GUI sürümü her zaman pano desteğine sahiptir, ancak bir terminalden Vim kullanmak isterseniz, X11-pano desteğini kontrol etmeniz gerekir.

    Konsoldan şunu yazın::

    $ vim --version | grep xterm

    Eğer bulursan -xterm_clipboard, iki seçeneğiniz var:

    1) xterm_clipboard bayrağı açıkken vim'i kendiniz derleyin

    2) Vim'i kaldırın, yükleyin gvım bunun yerine (vim-gtk veya vim-gnome). Daha önce yaptığınız gibi terminalden vim'i çağırarak guı olmayan vim'e yapışabilirsiniz. Bu sefer kontrol ettiğinizde bulmanız gerekir +xterm_clipboradname.

    Şimdi, vim düzenleyicinizin içindeki + kaydına bir miktar metin çektiğinizde (örneğin "+ yy), gedit düzenleyicisi gibi harici programınızdan alabileceğiniz sistem panosuna da kopyalanır. Ctrl+V.

  4. İçeriği kopyalamak ve yapıştırmak istiyorsanız harici bir programdan vım'e. önce metninizi sistem panosuna kopyalayın Ctrl+C, sonra vim editöründe ekleme modu, tıklayın fare orta düğmesi (genellikle tekerlek) veya basın Ctrl+Shift+V yapıştırmak.

    Bunlar 4 temel kopyala & yapıştır vım ile ilgili koşullar. Umarım bu yardımcı olur.

Kullan... farenin orta düğmesi başka bir yere vurguladığınız metni eklemek için.

Sistem panonuza erişiminiz olmadığında (örneğin, uzak bir SSH oturumunda) kullanışlıdır.

Vim için düzenleme / ekleme modunda olmalıdır.

Vı'ya girdikten sonra, tuşuna basın i ekleme moduna girmek için terminal'e sağ tıklayın, yapıştır'a tıklayın.

Vı'daki metin satırlarını kopyalamak / yapıştırmak için ayrıntılı talimatlar yank ve put

(aşağıdakileri kullanın komut modu vı)

Anlaşıldı (YANK)

Vı'da bir satır kopyalamak için:

  • Komut modunda, imleci kopyalanması gereken satıra getirin ve şunu yazın: yy veya yazın Y

Vı'da 2 satır kopyalamak için:

  • Komut modunda, imleci kopyalanması gereken ilk satıra getirin ve şunu yazın 2yy veya yazın 2Y

(aynı şekilde, herhangi bir sayıda satır kopyalanabilir)

Tüm satırları geçerli konumdan dosyanın sonuna kopyalamak için:

  • Komut modunda, imleci kopyalanması gereken ilk satıra getirin ve şunu yazın yG

Tüm metni geçerli konumdan geçerli sözcüğün sonuna kopyalamak için:

  • Komut modunda, imleci metnin kopyalanması gereken konuma getirin ve şunu yazın: yw

Tüm metni geçerli konumdan satırın sonuna kopyalamak için:

  • Komut modunda, imleci metnin kopyalanması gereken konuma getirin ve şunu yazın: y$

Yapıştır (KOY)

Panoya metin yapıştırmak için - sonra imlecin konumu:

  • Komut modunda şunu yazın p

Panoya metin yapıştırmak için - önce imlecin konumu:

  • Komut modunda şunu yazın P

Linux veya Mac'te Vim 8 + ile artık işletim sisteminin yerel macununu kullanabilirsiniz (ctrl+shift+V linux'ta, cmd+V mac'te). Basmayın i ekleme Modu için.

Otomatik bulma eklemeden boşlukları ve sekmeleri koruyarak işletim sistemi panonuzun içeriğini yapıştıracaktır. Eskiye eşdeğerdir. :set paste, i, ctrl+shift+V, esc, :set nopaste yöntem.

Buna ihtiyacın bile yok. +clipboard veya +xterm_clipboard vim özellikleri artık yüklü değil. Bu özelliğe "köşeli ayraçlı yapıştır" adı verilir. Daha fazla ayrıntı için bkz. https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763

Bir sorunum vardı, çünkü Vim kurulumum desteklemiyordu pano:

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

Vim-gnome'u (panoyu destekleyen) 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.

Öncelikle, vım'inizin pano desteğinin yüklü olup olmadığını kontrol edin

:echo has('clipboard')

1değerini döndürürse pano desteğiniz vardır

Panoya kopyalamak için hedefinizi seçmeniz gerekir, bir paragraf diyelim vip ve sonra "+y, bu kayıt için anlamına gelir + seçilen bölümü kopyalayın veya normal modda yazabilirsiniz: "+yip, bunun anlamı: kayıt defterine + iç paragrafı kopyalayın.

Panodan normal modda yapıştırmak için şunları yapabilirsiniz:

"+p

Ekleme modunda şunları yapabilirsiniz: Ctrl-rCtrl-o+. Bu, pano içeriğinizi ekler ve tüm girintileri panoda olduğu gibi korur.

Tüm arabelleği panoya kopyalamak isterseniz şunları yapabilirsiniz:

:%y+% ........ the whole filey ........ yank (copy)+ ........ to the clipboard

Son komutu panoya kopyalamak için:

:let @+=@:

Son aramayı panoya kopyalamak için:

 :let @+=@/

"a" işaretinden "b" işaretine kadar panoya kopyalamak için:

 :'a,'b y+

Panodaki herhangi bir işlevi test etmek için şunları yapabilirsiniz

:@+    (and then type Enter):call FunctionName() (and then type Enter)

Panoda ne olduğunu görmek için:

:reg +

"Desen" içeren tüm satırları panoya kopyalamak için şunları yapabilirsiniz:

:let @a="":[range]g/pattern/y A:let @+=@a:let @a="" ............ cleanses the register 'a':[range]g/pattern/y A   append to the register A every line with pattern:let @+=@a ............ copy register 'a' to the clipboard

Sadece bir not, Vı kullanmanın temel nedeni Vım’in yüklü olmamasıdır. Vim’i yüklediyseniz, muhtemelen bunu kullanmaya değer. Her Unıx yüklemesinde zaten mevcut olmasının yanı sıra Vı için gerçekten bir avantaj yoktur. Benim düşünceme göre Vim öğrenmenin en iyi yolu, terminal emülatörünüzü (Vim içinden değil) açmak ve vimtutor yazmaktır; Bu, yaklaşık 45 dakika içinde sizin için kullanılabilir olduğu yere kadar sizi hızlandıracaktır.

+1 @BenMordecai - Kullanışlı alt kabuk özelliği de dahil olmak üzere vı’ya (eskisinden) zaten aşinaydım, ancak bu yenilemeye ihtiyacım vardı. Harika bir özel ders. Bir esinti gibi içinden geçti. Teşekkürler.

Cevabımı buradan kontrol et How to copy selected lines to clipboard in vim - Stack Overflow