Görsel mod seçimini nasıl yeniden kullanırsınız?


164

Genellikle kodu düzenlerken, görsel modda bir blok seçeceğim ve bir arama yapıp blok üzerinde değiştireceğim. Ancak değişiklikleri yaptıktan sonra görsel moddan çıkıyor. Aynı seçimi yapıp yenisini nasıl bulup değiştirirsiniz?


Peki, bir yolunu buldum, ama biraz hantal:: '<,'> s / old / new / g '<,'> yazmak zorunda kalmadan bunu yapmanın bir yolu var mı?
Labirent

Yanıtlar:


244

Son seçilen görsel alanı ile tekrar seçebilirsiniz gv.


4
Korku veren! @Heptite bu komutu kendi başıma nasıl bulabilirim? Stackoverflow?
Skywinder

6
@skywinder: yardım gv
Heptite

4
@Heptite: Burada yanakta dil olup olmadığından emin değilim, ama bu komut size ne gösterir: gv bunu öğrendikten sonra ne yapar? Ama ya yapmazsam ? Balık tutmayı (wo) bir adama ve tüm bunlara öğretin.
Ben Thul

@BenThul: Sanırım soruyu yanlış anladım. Vim'in özelliklerinin birçoğunu, " :help" ile başlayan zaman içinde belgelerin büyük bölümünü okuyarak biliyorum .
Heptit

2
:help select-visualsizi vim @skywinder içindeki doğru kılavuza yönlendirmelidir.

14

gv kesinlikle en hızlı yöntemdir (son seçimi kullanın), ancak sabit bir kaydedilmiş seçim bölgesi (veya birkaçını) istiyorsanız, her zaman makro oluşturabilirsiniz.

Diyelim ki, şu anki yöntemimin bir seçimini saklamak istiyorum, 25-35. Satırlardan. Yazarak tüm yöntemi seçen bir makro oluşturabilirim

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording

Daha sonra bu seçimi yazarak geri alabilirim @a(Makroyu a kaydında çalıştırın). İstediğiniz kayıt, satır veya satır bölümleriyle tekrarlayın. Belli ki dosyada değişiklik yaparsanız, seçim de değişebilir, bu nedenle "hardcoding" satır numaraları yerine işaretleri kullanmayı düşünebilirsiniz.


zm girmek için satır numaralarını bilmeniz gerekir. İki işaret tanımlamanın ve daha sonra şunu kullanmanın daha iyi olacağını düşünüyorum: 'a,' b aralarındaki aralıkta çalışmak (ya da bir çizgide tanecik istiyorsan geri
tepme

Evet, satır numaraları olayı aptalcaydı - Ben sadece seçim makrosu oluşturmaya örnek olarak kullandım. Bir dizi işaret kullanmak ilginç bir fikir olsa da ...
AlexMA

6

gvSon seçimi kurtarmak için harika çalışıyor. Ancak bazen biraz daha fazlasına ihtiyaç duyulur.

Daha kalıcı bir sicile ihtiyacınız varsa , şu anda GitHub üzerinde çalıştığımız bir eklentiye bir göz atın .

VisualMarks , tıpkı dosyalarınızdaki belirli konumları kaydetmeniz ve işaretlemeniz gibi görsel olarak seçilen alanları kaydetmenize ve geri yüklemenize olanak sağlar m. Kurduktan sonra ve varsayılan seçeneklerle aşağıdakileri kullanın:

ma

Görsel modunda işaretlemek için geçerli seçimi kaydetmek için a, sonra

<a

Bu seçime dönmek için normal modda


Vay, kulağa gerçekten hoş geliyor. Bu eklentiyi denemem gerekecek! Bu arada, bu VisualMarks, işaretlerde olduğu gibi mkview ile devam edebilir mi?
labirent

@ labyrinth Bilmiyorum mkviewama .. sanırım evet, işaretler ayrı bir dosyaya kaydedildiğinden ve .. Yine de denemenizi öneririm :) İstediğiniz gibi devam etmezlerse, özelliklerinizi almaktan memnuniyet duyarız GitHub'dan istek isteyin ve deneyin.
iago-lito

1

Hoşçakal'ı Merhaba ile değiştirmek istediğimi ve aşağıdaki kodun seçildiğini varsayalım:

public static void main(String[] args){
    System.out.println("Goodbye World");
}

Ben :s/Goodbye/Hello/yazacağım ve vim Goodbyeile tüm örnekleri yerini alacakHello

Basitçe vim'in normal ifadelerinin ve görsel mod seçimlerinin bir birleşimidir. Seçtiğiniz zaman, otomatik doldurması gerekir'<,'>


1
Üzgünüm, istediğim bu değildi. Benim sorduğum, seçimi daha önce seçilen aynı aralıkta başka bir bulup değiştirmek için seçimi tekrar nasıl kullanıyorsunuz?
labirent

1
Değiştirdikten sonra görsel moddan çıkacaksınız. yazın gvve görsel modunuz önceki seçim durumuna dönecektir.
Scott Nguyen,
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.