Vi düzenleyicide seçili metin nasıl silinir


116

PuTTY ve vi editörü kullanıyorum. Faremi kullanarak beş satır seçersem ve bu satırları silmek istersem, bunu nasıl yapabilirim?

Ayrıca, Shiftmetni seçmek için oklara basıp hareket ettirdiğim Windows'ta klavyemi kullanarak satırları nasıl seçebilirim? Vi'de bunu nasıl yapabilirim?


1
basılı adam listesine sahibim ancak seçili metni nasıl sileceğimi bulamadım

x İmlecin sağındaki karakteri sil X İmlecin solundaki karakteri sil D Satırın sonuna kadar sil dd Şu anki satırı sil: d Mevcut satırı lagmonster.org/docs/vi.html'den silin biraz yardımcı olmasını umuyoruz
Mawg Monica'nın

1
Süper kullanıcı hakkında VIM soruları? LOL!
Pascal Thivent

1
@Pascal: hmm, evet, haklısın. Bu arada, güzel biçimlendirilmiş cevap. Oh, ve onun sorusu VIM ile ilgili değil, VI hakkındaydı. ;)
Marcel Korpel

Yanıtlar:


215

PuTTY ve vi editörü kullanıyorum. Faremi kullanarak beş satır seçersem ve bu satırları silmek istersem, bunu nasıl yapabilirim?

Fareyi unut. 5 satırı kaldırmak için:

  • İlk satıra gidin ve yazın d5d( ddbir satırı d5dsiler, 5 satırı siler) ~ veya ~
  • Yazın Shift-vgirmek için linewise seçim modunu sonra kullanarak aşağı imleci j(evet, kullanım h, j, kve lhareket etmek sola , aşağı , yukarı , sağa sırasıyla çok daha verimli okları kullanarak daha var) ve tip dseçimi silmek için.

Ayrıca, Shiftmetni seçmek için oklara basıp hareket ettirdiğim Windows'ta klavyemi kullanarak satırları nasıl seçebilirim? Vi'de bunu nasıl yapabilirim?

Dediğim gibi, ya Shift-vsatır bazında seçim moduna vgirmek için ya da karakter bazlı seçim moduna girmek için ya da Ctrl-vblok halinde seçim moduna girmek için kullanın. Sonra hareket h, j, kve l.

vimtutorVim'i çok didaktik bir şekilde daha iyi tanımak için Vim Tutor (koşu ) ile biraz zaman geçirmeyi öneriyorum .

Ayrıca bakınız


1
Aslında, terminaliniz destekliyorsa vim'in harika bir fare desteği vardır. Örneğin, gpmarka plan programını bir konsolda kullanarak veya çalışırken xtermveya konsolebir grafik ortamda set mouse=akullanarak, vim'e söyleyebilir (veya .vimrc'nize ekleyebilirsiniz) ve fare seçim, bölmeleri yeniden boyutlandırma vb. İçin kullanılabilir.
Ben Voigt

@Ben Haklısın, fareyi hiç kullanmıyorum ama bu VIM'in bununla başa çıkamayacağı anlamına gelmez (bazı durumlarda). Aslında siz yazarken bu yanlış kısmı cevabımdan çıkarıyordum.
Pascal Thivent

Ayrıca, V'nizin büyük olup olmadığını söylemek gerçekten zor ... Satır modu seçimi için [Shift] + [V] demenizi öneririm.
Ben Voigt

Bunun bir süre oldu biliyorum ama kullanırken neden h, j, kve lolacağını çok okları kullanarak daha verimli? Okları kullandığımda bir sorun görmüyorum ve nihai sonuç aynı görünüyor. Ayrıca, oklar ilk olarak bu amaç için tasarlandı, bu yüzden düzenlemeleri çok daha sezgisel geliyor (en azından benim için)
Frederico Pantuzza

1
@FredericoPantuzza Bu noktada bu bir kol hareketi meselesidir - amaç, parmaklarınızı her zaman ana satır tuşlarının üzerinde tutmaktır. Sağ kolunuzu kaldırmak ve kullanmak için ok tuşlarına kaydırmak zorunda kalmak zamanla artar.
AndrewF

59

Vi yolu ile yapın.

5 satırı silmek için şu tuşa basın: 5dd(5 sil)

Seçmek (aslında panoya kopyalamak) için şunu yazarsınız: 10yy

Anlaşılması biraz zor, ancak bu uzak terminalleri kullanırken öğrenmek çok kullanışlı

Bazı editörler için öğrenme eğrilerinin farkında olun:


(kaynak: calver, unix.rulez.org )


31

Satır numaralarını kullanarak silmek isterseniz şunları kullanabilirsiniz:

:startingline, last line d

Misal:

:7,20 d

Bu örnek, 7'den 20'ye kadar olan satırları silecektir.


Şimdiye kadar bu ipucunun farkında değildim. Mucizevi şekilde çalışır! Teşekkürler!
Tung

13

Farenizle vurgulamak yalnızca terminaldeki karakterleri vurgular. VI bu bilgiyi gerçekten almaz, bu yüzden farklı şekilde vurgulamanız gerekir.

Bir seçim moduna girmek için 'v' tuşuna basın ve bu modda hareket etmek için ok tuşlarını kullanın. Silmek için x düğmesine basın. Bir seferde satır seçmek için üst karakter + v tuşlarına basın. Blokları seçmek için ctrl + v'yi deneyin. Bu, kodunuzun önüne çok sayıda yorum satırı eklemek için iyidir :).

VI ile iyiyim, ancak gelişmem biraz zaman aldı. İş arkadaşlarım bana bu kopya kağıdını tavsiye etti . Bir şeyi unuttuğum zaman o tuhaf anlar için duvarda bir çıktı saklıyorum.

Mutlu hacklemeler!


6

Böyle bir terminali kullanırken PuTTY , genellikle fare tıklaması ve seçimleri edilir değil uzak sisteme aktarılan. Yani vi'nin bir metin seçtiğinizden haberi yok. (Bunun istisnaları vardır, ancak genel olarak fare eylemleri iletilmez.)

Vi'de birden çok satırı 5ddsilmek için 5 satırı silmek gibi bir şey kullanın .

Vim kullanmıyorsanız , kesinlikle kullanmanızı tavsiye ederim. VGörsel bir bloğu başlatmak için bastığınız , imleci diğer uca hareket ettirdiğiniz ve dsilmek için düğmesine bastığınız (veya ykopyalamak gibi başka herhangi bir düzenleme komutunu) görsel seçimi kullanabilirsiniz .


1
@Justin L .: Kullanın <kbd>a</kbd>.
Greg Hewgill

1
Teşekkürler! : D Bir yerlerde bunlardan daha fazla var mı?
Justin L.

1
Putty, fare komutlarını iletebilir; ilk cümle eski olabilir.
congusbongus

3

Bir dosyadaki tüm satırları mevcut satır numaranızdan kaldırmak istiyorsanız, kullanın dG, (shift g)dosya sonu anlamına gelen tüm satırları silecektir .

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.