Vim'de kopyalayın, silin ve yapıştırın


15

Dün Vim ile başladım ve kopyala ve yapıştır'ı anlamakta zorlanıyorum. Kopyalamayı anlıyorum Görsel moda giriyorum, vurgulayıp çekiyorum. Daha sonra üzerine yapıştırmak istediğim çizgiye geçiyorum, ancak daha sonra bu satırdan bazı metinleri silmem gerekmiyor. Bunu xveya tuşunu kullanarak yaparım dw. (Benim asıl nüsha olarak bu durumda sonuçlar üstüne kaydetmeden xve dwkesim gibi). Bunu nasıl çözebilirim?

Bir örnek vermek gerekirse

$foo = $this->foo->property;
thislineuses($foo);

Yani yukarıdaki kod ile kopyalamak $this->foo->property, sonra satır 2 gitmek, silmek $foove yapıştırmak istiyorum. Ben sorun $foosatır 2 silmek zaman o zaman bunun yerine yapıştırılan olur $this->foo->property.

Yanıtlar:


16

Bir göz atın :h copy-move. Varsayılan yank veya delete, register adında bir yere gider ". Yapıştırmadan önce bazı metinleri silmeniz gerekiyorsa, keşfettiğiniz gibi x kaydının üzerine yazmaktan kaçınmanız gerekir. Neyse ki, farklı bir kaydı adlandırmak için başka bir harf veya sayı kullanabilirsiniz.

  • "ayy(bir satırı kayıt altına alın a)
  • x, ddvb. (adsız kayıttaki bazı metinleri silin, ")
  • "ap(kayıttaki metni yapıştırın a)

10

Sorun sadece bazılarını textbazılarıyla değiştirmeniz gerektiğinde text2, sadece vurgulayın ve çekin text2. Ardından vurgulamak textve basın pveya Pyapıştırmak text2yerine text.

Bazı yaygın vim komutları için hızlı bir ek kılavuz http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know

Zevk almak!

Düzenle: pmetni imleçten sonra ve imlecin önüne yapıştırır P.


bu güzel çünkü içine girmek için ara kayıtlar hakkında düşünmek zorunda değilsiniz. sadece işe yarıyor.
Jon Schoning

7

Adlandırılmış bir kayıt defterine kopyalayabilir "ayw, silebilir ve daha sonra adlandırılmış kayıttan yapıştırabilirsiniz "ap.

Ancak, genellikle işleri yaptığınız sırayı değiştirmek daha kolaydır. Yapıştır ve ardından silme işlemini gerçekleştirin veya silip kopyala / yapıştır işlemini yapın.

Alternatif olarak, kara delik kaydına da silebilirsiniz "_d. Bkz. Https://stackoverflow.com/q/54255/70863


3

Farklı metin değerlerini tutmak için kullanabileceğiniz çeşitli kayıtlarınız vardır. Eğer (yani kullanarak silinir metin gidecek yerden farklı bir kayıt metin kaydedebilir isterseniz xveya d wkullanım yerine, aşağıdakileri):

Metni kayıt defterine kaydetmek için a:

  • " a[yank ve hareket komutu] tuşuna basın (metni kayıt defterine kaydeder a)
  • metni yapıştırmak istediğiniz yere gidin
  • basın " a p(kayıttaki metni yapıştırın a)

Klavyedeki harflerin her biri ve her sayı için bir kayıt kullanabilirsiniz. Metin silme bu kayıtları kullanmaz, bu nedenle oturumunuzu bitirene veya başka bir şeyi manuel olarak buraya koyana kadar metin kayıtta kalır.


0

Görsel modu v(aksine V) kullanırsanız tüm satırı vurgulamanız gerekmez . Eğer istediğin buysa.

Kopyalanan metni değiştirmekten bahsediyorsanız, önce parçaları kopyalayıp silersiniz.

Ve kopyalamak istiyorsanız, orijinali değiştirin ve yapıştırın, Sonra başka bir kayıt defterine çekebilirsiniz. Beğen "2y, sonra değiştir, sonra başka bir yere git ve "2p.

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.