Görsel modda değiştirme kodu nasıl engellenir?


26

İlk iki karakteri değiştirmek istediğim bir liste var:

a) item 1
b) item 2
c) item 3

Bunu yapmanın en hızlı yolu nedir:

* item 1
* item 2
* item 3

Görsel mod ile bir yaklaşımım var (Ctr-v, jjj, fakat iki tane yerine getirme komutu gerekiyor. Iirc, bu değiştirme 1 komutla yapılabilir)


1
Beğen .,.+2s/^../*/(veya görsel seçimde eşdeğer)? Neden iki komut yerine geçer? 2ciki karakterin yerine geçecek.
muru

bazen görsel seçimde sadece ilk satır değiştirilir, sonra tekrar edilir. Diğer satırlar işleri berbat ediyor.
15’te

2
@poseid Ctrl-Cyerine baskı yapma alışkanlığınız var Escmı? Bu, diğer şeylerin yanı sıra, Görsel blok seçiminin her satırına değişiklik yapılmasını önler.
tommcdo

Bu karışıklığın ana nedeni olabilir! Teşekkürler!
15'de

Yanıtlar:


26

Görsel blok seçimi:

<C-v>
jjl
c*
<Esc>

:normal:

:,+2norm! cE*

İkame:

:,+2s/^.\{2}/*

Nokta formülü:

cE*<Esc>
j.
j.

1
Çılgın yaklaşım: textobj-word-column.vim kullanarak yapabilirsiniz ciC*<esc>. Not: bu eklenti "demek istediğimi yap" eklentisidir, bu nedenle beklenmedik yerlerde ve yollarda başarısız olur, ancak eklenti bunun gibi bazı basit durumlarda hala kullanışlıdır.
Peter Rincker

Normal ve nokta formülü ilginç!
15’de

3
Visual-blok çözümü için yalnızca ilk satıra yazılan metni göreceğinizi unutmayın. Bir kere vurduğunuzda <Esc>kalan satırları doldurur.
tommcdo

C'nin yerini alacağını hatırlamak için herhangi bir öneriniz var mı? Nasıl ctrl + D (kendi)
Jordan Mackie

2
@JordanMackie c"değişim" içindir.
romainl

17

İşte bunu yapmanın daha etkili bir yolu:

  1. İlk madde ve 1 harf (imleci olması 0), 'blok şeklinde' girmek görsel mod Ctrl+ vve ayırarak mevcut paragrafın 1. sütunu seçmek }, aksi gibi farklı yöntemleri kullanmak (Listenizi yeni çizgi ile bitmiş ise) ok tuşlarıyla hareket etmek ( seçimin etrafına) veya desen araması son öğenizin /c)nerede colduğunu).
  2. Listenizin son sembolüne kve l(veya ok tuşlarını kullanarak ) gidin, böylece değiştirmek istediğiniz iki sütun seçilir.
  3. Seçili metni c, madde işareti sembolünüze ( *) basıp yazarak değiştirin ve tuşuna basarak bitirin Esc.

Özellikle daha uzun listelerde daha verimli çalışır.

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.