Vim'de seçim ara


107

C ++ yazarken görsel stüdyo için vim ve vim eklentilerini kullanıyorum. Çoğu zaman, kendimi bir işlev içinde bir dizeyi aramak isterken buluyorum, örneğin her çağrı object->public_member.memberfunc().

Ben vim sunuyor basarak, tek bir kelimeyi aramak için uygun bir yol biliyor *ve #ve aynı zamanda her yerde bulunan eğik çizgi kullanılarak yazılan dizeleri arayabilirsiniz /komutu. Yukarıdaki gibi daha uzun bir dizenin tüm örneklerini aramaya çalışırken, sonrasında yeniden yazmak biraz zaman alır /.

Seçimi aramanın bir yolu var mı? Örneğin, ile vurgulayın v, ardından kopyalayın, sonra yyapıştırmanın bir yolu var /mı? Daha kolay bir kısayol var mı?


Yanıtlar:


154

Bu Vim ipucunu kontrol edin: Görsel olarak seçilmiş metni arayın

Veya seçili metni y ile çekebilir ve arama moduna / gidebilir , ardından son yankılanan metni Ctrl + R 0 ile yapıştırabilirsiniz.


4
@CMS. Teşekkürler. Harika bir ipucu! Kayıtlarınızda ne olduğunu görmek için: reg kullanmak ve sonra N registerındakileri almak için cntl-R N kullanmak mükemmeldir!
Rob Wells

85

Cevap

  1. Aramak istediğiniz metni çekin
  2. q/p
  3. Enter

Açıklama

q//komut kipinde olmanız dışında vanilya aramasına benzer şekilde çalışır , bu nedenle pkarakteri yazmak yerine "yapıştırır" p. Dolayısıyla, yukarıdakiler aradığınız metni kopyalayacak ve bir aramaya yapıştıracaktır.

Daha fazla ayrıntı için yazın :help q/


4
Bunu beğendim çünkü <ctrl-r> yazmayı çok uygunsuz buluyorum.
Jan

Mükemmel! Emacs kullanarak evil-mode, bu aslında işe yarıyor, oysa kabul edilen cevap sefil bir şekilde kırılıyor (muhtemelen Ctrlanahtarın kullanılması nedeniyle ).
eestrada

2
Basit dizeler için harikadır, ancak bu diğer yanıtın yorumunda belirtildiği gibi normal ifade özel karakterlerinden kaçmaz .
Bluu

1
Ve onu çekmenize bile gerek yok. Son görsel seçimin q/gvpbulunduğu görselde seçin gv...

1
@nwildner, q/gvpbenim için çalışmıyor. Önerinizi netleştirebilir misiniz?
bam

38

Kullanım q / yerine sadece / ' . İle (aynı q : ). Artık komutunuz ve arama geçmişiniz aracılığıyla VIM düzenleme yapabilirsiniz! (Bir ara Ctrl-N ve Ctrl-P'yi deneyin).


10

Bunun için bir eklenti olduğunu öğrendim (mükemmel Practical Vim kitabından ). Eklentiyi GitHub'da bulabilirsiniz .

Eklenti, *ve ile görsel bir seçim aramanıza izin verir #.


5
Diğer cevapların herhangi bir kaçış yapmadığını unutmayın. Bu yöntemleri kullanarak, mevcut magicayara bağlı olarak, seçilen metakarakterler tam anlamıyla aranmayacaktır . Bu, dengeleme gerektiren meta karakterler için aramanın başarısız olmasına bile neden olabilir. Burada bahsedilen eklenti, seçili metni aramadan önce kaçacaktır.
Kurt Hutchinson

1
işe yarıyor, ancak ne yazık ki, bir nsonraki bulunan öğeye gitmek için kullanamazsınız , ancak Cory'nin ve CMS'nin yaklaşımları izin veriyor ..
Ayrat

2

Aslında metni görsel olarak seçebilir ve bir sonraki oluşumu aramak için * ve # tuşlarına basabilirsiniz ... Aynı şekilde çalışacaktır, tek uyarı şudur:

Seçimdeki boşluklar, arama yaparken herhangi bir boşlukla eşleşir ("merhaba dünya" arandığında, bir satırın sonunda "merhaba" bulunur ve sonraki satırın başında "dünya" bulunur).

http://vim.wikia.com/wiki/Search_for_visually_selected_text


2
benim için metni görsel olarak seçip * tuşuna basmak görsel seçimimi genişletir.
martin jakubik

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.