Vim'de birkaç satırdan nasıl kopyalayabilirim? (aralık değil);


20

Varsayalım

1 - funct1
2- funct 2
3 - funct 3 
4 line 4

1. ve 3. satırları (bir satır aralığı değil) nasıl kopyalayabilir ve örneğin 8 numaralı satıra yapıştırabilirim? Bunu |arg gibi ( 1y|3y) ile yaparsam, satırları çeşitli kayıtlara çekerdim, değil mi? Ama aynı anda birkaç kayıttan nasıl koyabilirim?

Yanıtlar:


33

Bir kayıt defterine, küçük harf yerine büyük harf kullanarak silmek yerine ekleyebilirsiniz.

Örneğin:

:1y a      # copy line 1 into register a (erases it beforehand)
:3y A      # copy line 3 into register a (after its current content)
8G  # go to line 8
"ap        # print register a

1
Bunu ile normal modda da yapabilirsiniz "ayyjj"Ayy"ap.
wchargin

5
(veya 1G"ayy3G"Ayy8G"apaçık satır numaraları için)
wchargin

1
Sadece Gçizgiye gitmek için değil, değil <C-G>mi?
David

1
Bu çok havalı. İstediğiniz kadar arabelleğe almak için çok şey eklemeye devam edebilirsiniz Ave her şeyi saklar. Başlamak için, kayıt altına bir şey koyuna
CornSmith

1
@CornSmith Nitpick: tampon vim bağlamında çok spesifik bir terimdir. "abir kayıttır .
Doorknob

1

Şu :copyşekilde kısaltılabilen komutu kullanabilirsiniz :t:

:1t8
:3t8

Bir dizi satırı (örneğin 1'den 3'e kadar tüm satırlar) kopyalamak istiyorsanız, bunu şu şekilde yapabilirsiniz:

:1,3t8

Satırları numaraya göre kopyalamak istiyorum, ancak satır aralığı değil ... T komutu gibi bir şeye satır ekleyebilir miyim?
Whats Myname

0
1Gyy7Gp #use 7 if you wish to paste the line at 8
3Gyy8Gp #use 8 if you wish to paste the line at 9

Bunlar :t, aynı zamanda, "ya da 0kayıtlarını temizlemeyen komutla daha iyi ifade edilebilir .
Doorknob
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.