vim kes ve yapıştır


60

Vim'de kestiğimde, kestiğim son şeylerin tarihini tutan kayıtlar olduğuna inanıyorum. Bu kayıtlara nasıl erişirim?

Örneğin, diyelim ki bu kelimelerin her birini arka arkaya

  • 'Merhaba'
  • 'Dünya'
  • 'Ve'
  • 'Vim'

Bu düzenlemeleri aslında belirli kayıt defterlerine kaydetmediğimi unutmayın, sadece 'd' yi art arda dört kez kullanıyorum.

Yanıtlar:


102

The

: yardım kayıtları

komutu 10 numaralandırılmış kayıt olduğunu gösterir ( "0to "9).

Kayıt "0En son şeydir çekti ; register "1en son silinmiş metne sahiptir, "2önceki silme işlemini kaydeder , bundan önce silme işlemi yapar, "3vb.

Eğer sırayla her satırı silerseniz, kayıtlar "1, "2, "3ve "4sırasıyla, "Dünya" & "Merhaba", "Vim" içeren "Ve" olacaktır.

Bunu :reg(veya :registers) komutunu kullanarak doğrulayabilirsiniz :

:reg
""   Vim^J
"1   Vim^J
"2   And^J
"3   World^J
"4   Hello^J

Böylece dört çizgiyi teker teker sildikten sonra, 2. çizgiyi ("Dünya") kurtarabilirsin.

"3p

çünkü bu üçüncü en son silme işlemidir.


Bu harika; Ancak, en son 'yanmış' metni ne istiyorum?
Alexey,

Yani kullanacaksınız: p ("0p ile aynı anlamına gelir")
njd

1
Ayrıca okurken özellikle "*" ve "+" gibi özel kayıtlara dikkat edin :help registers. Çok yararlı.
Daniel Andersson

3
Tanrılar, her gün yeni bir şey öğrenirsiniz. Bu harika. Teşekkürler, @njd.
ELLIOTTCABLE 22:12

3
Bu cevap önemli bir detayı ortaya çıkarmaktadır: Sadece bir ya da daha fazla satırın silinmesi bu şekilde tarihe kaydedilir. Kelimeleri OP'de belirtilen şekilde silerseniz ( dyerine dört kez kullanarak dd), silinen sonuncular hariç tümü kaybedilir.
Alexander Rechsteiner

8

Njd'nin cevabına ek olarak, bu YankRing eklentisi ile basitleştirilebilir . Önceki yanlara göz atmayı daha kolay hale getirmenin yanı sıra, önceki yanları 'yığından' açmanız için bazı tuşları yapılandırabilirsiniz. Bu yapmanızı sağlar:

yy    " Copy first line
yy    " Copy second line
yy    " Copy third line
yy    " Copy fourth line
" Assumes you've mapped ,p to be the pop command: choose your preferred key or key-combination
,p    " Paste fourth line and pop it off the Yank Ring
,p    " Paste third line and pop it off the Yank Ring
,p    " Paste second line and pop it off the Yank Ring
,p    " Paste first line and pop it off the Yank Ring

4
Bir önceki grubu açmak için nasıl harita ekleneceğini ekler misiniz ,p?
Andrew Wood
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.