İmleçten VI üzerindeki satır sonuna kadar sil


301

Muhtemelen okuduğum tüm VI belgelerinde milyonlarca kez bunun üzerine baktığımı biliyorum, ancak imleci satır komutunun sonuna kadar silmeyi bulamıyorum.


3
Burada bir yazım hatası var - başlıkta "satırın sonu", ancak soruda "sözcüğün sonu" diyorsunuz.
Cascabel

Yanıtlar:


449

Komut dw, mevcut imleç konumundan bir sonraki kelime karakterinin başlangıcına kadar silinecektir. Komut d$(not, bu 'S' değil dolar işaretidir), mevcut imleç konumundan o anki satırın sonuna kadar silinecektir. Deşanlamlıdır d$.


Evet biliyorum dwama sanırım "" bu satırın geri kalanını sil "komutu olacağını sanmıştım. Örneğin benim çizgi vardır ip=|10.1.1.1ile |imleç konumu olmak. Tüm silecek bir komut var mı 10.1.1.1?
Falmarri

3
@Falmarri - Özür dilerim, sorunuzu yanlış anlamış olmalıyım. Bunun için bir emir var:d$
Tok

84
D (Shift + d) ayrıca d $ ile eşanlamlıdır.
Neth

5
@Andy, iş imleçten satır sonuna kadar silmek. "İşi yapıyor" olmaktan daha fazlasını silmeyi düşünürseniz , :!rm -f %sonra da kullanabilirsiniz :q!. Bu tüm dosyayı siler.
Wildcard

2
@Amir Sadece kullanın d^('d' + şapka) ... temel olarak normalde imleci hareket ettirecek herhangi bir karakter d + sanırım, ama kendim Vim öğreniyorum, bu yüzden yanlış olabilirim.
JakeD

41

Diğerlerinin de söylediği gibi: İmleç konumundan satırın sonuna kadar silmek için d$veya D( shift- d) kullanabilirsiniz.

Genelde daha yararlı bulduğum şey c$ya da C( shift- c) çünkü imleç konumundan satırın sonuna kadar silecek ve sizi [INSERT] moduna geçirecektir .


2
GÜZEL!!! Bu, Dçoğu insan için olduğundan çok daha iyi , bence, o zaman sizi satırın sonundaki boşluğa geri götürmüyor.
Elijah Lynn

Bu cevap neden tüm yol boyunca gizli? Buraya geldiğimde gerçekten aradığım işlev buydu.
M_M

@ElijahLynn zaten bir sorun olmamalıdır. Vim, iimleçten önce aekleyen ve imleçten sonra ekleyen ekleme moduna girmenin iki ana yoluna sahiptir . İmleciniz satırın sonundaysa ve satırın sonuna eklemek istiyorsanız, kullanabilirsiniz a.
Yalan Ryan

1
Amaç iki değil, tek bir işlemde yapmak. Ekstra tuş vuruşları = ekstra sürtünme.
Elijah Lynn

36

Vi hakkındaki güzel şeylerden biri de mantıksal komut yapısıdır. dardından bir hareket komutu d , o hareketin hedefini seçer. $satırın sonuna gider (anımsatıcı: regexps'deki gibi). Böylece d$satırın sonuna kadar siler. Benzer şekilde, ekarşı hamle e akım kelimenin nd ve wsonraki başlangıcına hamle w ord; bu de, geçerli kelimenin sonunu siler ve dwayrıca aşağıdaki boşlukları da siler.


1
@ gioele <kbd>Komut dizileri için değil gerçek anahtarlar için kullanıyorum . Örneğin <kbd>Ctrl</kbd>+<kbd>C</kbd>, ama d$.
Gilles

@Gilles Haklısın. D ^ 'yi denedim ve imleç konumundan satırın başlangıcına kadar silindi.
ka3ak

Her zaman (d) elete (a) (w) sözcüklerini silmek için ord kullandım :)
Błażej Michalik

20

Muhtemelen D kullanmak istersiniz. İmleci silmek istediğiniz ilk karaktere getirin, sonra shift-D tuşlarına basın. Her şey gitti. Aslında, varsayılan kesim tamponundadır, böylece P'ye veya p'ye tekrar yapıştırabilirsiniz.

Dp (satırın sonuna kadar sil, sonra geri koy), başka bir satırın sonuna git, sonra aynı metni bu satırın sonuna yapıştırmak için tekrar kullanıyorum. Bazı karmaşık URL’leri iki veya daha fazla yere koymanız gereken config dosyalarında harikalar yaratır.


Muhtemelen zaten kullandığı minimal bir Vim.
polemon,

0

Bir ekleme modu kısayolunun işe yarayabileceğini düşünüyorum.

Ekleme modunda, satırın sonuna kadar değişmeye başlamanız daha iyi olabilir (bunu size yazın ~/.vimrc):

inoremap <C-l> <C-o>C

Yani, söylendiği Dgibi normal modda ve Ctrl+ lekleme modunda. Gördüğünüz gibi aynı zamanda Cçizginin sonuna kadar değişmeye başlar.

<C-o> ......... insert normal keystroke in insert mode

Ben seçtim Ctrl- lçünkü lparmaklarının altında. Ctrl- kZaten digraphs eklemek için kullanılır.

:h i_CtrlBazı ücretsiz anahtarlıklar araştırıyordum ve vim'de eylemler gerçekleştirmek için yeni kısayollar yaratma konusunda asıl sorun bu.


0

İmleç konumundan sonraki satır aralığını 3Dsilmek için imleçten satır sonuna kadar ve sonraki iki satır tamamen silinir (yani, imleç konumundan sonra 3 satır silinir).

örneğin, aşağıdaki metin için (imleç olarak gösterilen |),

If there's a cursor |in the line
here
we
go

Komutu kullanarak 3Dçıkacaktır:

If there's a cursor
go
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.