Vim'de arama satırına metin yapıştırmanın bir yolu var mı?


105

Onu aramak $maximumTotalAllowedAfterFinishve değiştirmek istiyorum $minimumTotalAllowedAfterFinish. Uzun metni yazmak yerine:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Bu uzun değişken adlarını arama satırına KOPYALAMANIN bir yolu var mı, çünkü komut satırına pyapıştırmak için " " yazamıyorum?


2
Sanırım o da ilkinden kaçmak zorunda $çünkü bu karakter satırın sonu anlamına geliyor.
Luc M

1
@LucM OP, \V"sihirli" karakterleri devre dışı bırakmak için arama modelinin herhangi bir yerini de kullanabilir .
dash-tom-bang

Yanıtlar:


129

Numaralı veya adlandırılmış bir kütüğün içeriğini yazarak ekleyebilirsiniz CTRLR {0-9a-z"%#:-=.}. Yazarak CTRL-R CTRL-Wmevcut kelimeyi imlecin altına yapıştırabilirsiniz. Görmek:

:he cmdline-editing

daha fazla bilgi için.


8
cevabınız için teşekkürler, benim için en yaygın olanı: CTRL+ R +(pano içeriği için geçerli olduğu gibi)
Peter Butkovic

4
0Kayıt son çekti dizesi içerir.
Evgeni Sergeev

52

Normal olarak kopyalayın, sonra CtrlR"yapıştırın. Pek çok başka CtrlRkısayol vardır (örneğin, hesap makinesi, geçerli dosya adı, pano içeriği). Tür :help c_<C-R>tam listesini görmek için.


16

Kopyala:
1) v(veya görsel modda fareyle vurgulayın)
2) y(çekin)

Yapıştır:
1) /(arama modu)
2) Ctrl + R + 0(yanked kayıttan yapıştır)


1
Google'da bu soruyu aradığımda bu cevabı arıyordum, neden olumsuz oy aldığını merak ediyorum.
santiago arizti

15

Tip q:yeni bir tampon tarih düzenleme moduna girmek. Sonra arabelleğin son satırını düzenleyin ve Enteryürütmek için tuşuna basın .


3
Demek o tampon bunun içindi! Teşekkürler (Yazarken
hep yanıldığım oluyordu

3
q/arama geçmişine erişmek ve yeni aramalar yapıştırmak için de kullanışlıdır.
79E09796

3

Veya komutu bir vim arabelleğinde oluşturun, örneğin arabelleğe yazın:

s/foo/bar/gci

Ve "ayy(imleç o satırdaysa!)

Artık " a" yazmacının içeriğini Vim'in Ex komut satırından şu şekilde çalıştırabilirsiniz:

:[OPTIONAL_RANGE]@a

Ben her zaman kullanırım.


"ayy" iniz ya alıntılanmış (ve bu nedenle yanlış) ya da değil (ve bu nedenle sonunda hatalı bir ")
tzot

2

Tipik olarak, bunu fareyi seçerek (belki CtrlInsveya CtrlCseçtikten sonra) ve ardından komut / arama satırındayken orta tıklayarak (veya ShiftInsveya CtrlV) yaparsınız .

Başka bir yol da, komut / arama satırınızı metin arabelleğine yazmak, metin arabelleklerinde bulunan tüm düzenlemeleri ile başlayıp :tümü ile başlayıp ardından satırda şunları yapmaktır:

"add@a

komut satırının tamamını arabellekte saklayacak ave ardından çalıştıracaktır. Yine de komut geçmişinde saklanmayacak.

Yukarıdaki tuş basışlarına örnek olarak metin arabelleğinde aşağıdaki satırı oluşturmayı deneyin:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Son olarak, q:bir metin arabelleğinde geçmiş düzenlemeye girmek için girebilirsiniz.


1

Size desen ve sonra basına eklemek istediğiniz kelimeye imleci yerleştirebilir /veya :arama veya komut modu ve ardından düğmesine basın ya girmek için CtrlRCtrlWsözcüğü kopyalamak için. Kaynak

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.