VIM: eliminazione dalla posizione corrente fino a uno spazio


172

Spesso durante lo sviluppo mi trovo di fronte a un oggetto nidificato che vorrei eliminare dal codice nel mezzo di una riga come questa:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

La parte che vorrei eliminare è:

this.cbAllSyncs.SelectedItem.ToString()

So di poter contare il numero di parole e punti ed entrare 7dwper cancellare dalla mia attuale posizione del cursore di "questo". Tuttavia, ciò che mi piacerebbe fare non è affatto contare ed eliminare nello spazio con un solo comando. È possibile?

Risposte:


343

Prova dtspace. In generale dtxcancella dalla posizione corrente fino a poco prima x. txSposta semplicemente il cursore appena prima del carattere xnella riga corrente.

Per eliminare fino allo spazio incluso, utilizzare dfspace.


2
Funziona benissimo! Mi dà anche una maggiore flessibilità per arrivare ad altri determinati punti all'interno di quell'oggetto. Grazie!
Blake Blackwell,

27
df<space>cancella fino allo spazio successivo incluso.
Glenn Jackman,

5
ugualmente utile, dfT <spazio> cancella nello spazio precedente.
hgmnz,

3
Puoi anche aggiungere un conteggio poco prima tdi eliminare fino a quel numero di caratteri. ad es. d2t<space>eliminerà fino a due spazi.
Waseem,

7
Io uso sempre il mnemonico tcome 'fino stackoverflow.com/questions/7409134/...
ACW

71

È possibile utilizzare dWo dEcome suggerito da @glenn se non si desidera eliminare lo spazio stesso.

Una WORD (W maiuscola) è costituita da una sequenza di caratteri non vuoti, separati da spazi bianchi.

Dai un'occhiata alla parola movimenti .


1
Se potessi votare due risposte, lo farei, poiché ciò risolve la domanda specifica che ho posto. Grazie per il link!
Blake Blackwell,

5
oppure dE- elimina fino alla fine della sequenza di caratteri non vuoti (non include il seguente spazio vuoto)
glenn jackman,

@BlakeBlackwell Chi dice che non puoi votare per due risposte? l'ho già fatto su questa domanda. Questa è v informazioni utili.
javadba,

20

una possibile soluzione è utilizzare l'eliminazione con una ricerca.

quindi digita d/<space>e vim eliminerà fino a quando non colpisce uno spazio.


2
Questo è più generale rispetto al dWfatto che puoi anche usarlo per eliminare dal cursore qualsiasi carattere, come 2d/+in questo caso, che eliminerebbe anche le concatenazioni di stringhe.
Dave Jarvis,

1
puoi fare 2dW e questo funziona altrettanto bene. infatti la considero una soluzione migliore poiché funzionerà anche con schede e altri spazi bianchi. Rimuove anche lo spazio bianco finale che si desidera eliminare fino a.
barkmadley,

15

Se si desidera eliminare da qualsiasi punto all'interno della WORD e in un singolo comando, basta usare daW

(puoi ovviamente usare dawse vuoi limitarti a una parola)

Lo uso parecchio perché risparmia una mossa all'inizio della parola (nel tuo caso)


daw e daW si comportano allo stesso modo per me - entrambi eliminano l'intera parola indipendentemente dalla lettera su cui si trova il cursore. Non so perché.
Sarà il

daw non cancellerà gli spazi bianchi dopo la parola, mentre daW lo farà
Louis

4
  • elimina per la posizione corrente in un esempio di carattere specifico "

    dt"
  • eliminare la parola dal cursore di posizione è attivo fino alla fine della parola

    dw
  • elimina l'intera parola su cui si trova il cursore indipendentemente dalla posizione in cui si trova il cursore sulla parola, questo ti mette anche in modalità inserimento per permetterti di inserire immediatamente.

    DIW

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.