VIM: suppression de la position actuelle jusqu'à un espace


172

Souvent, lors du développement, je suis confronté à un objet imbriqué que j'aimerais supprimer du code au milieu d'une ligne comme celle-ci:

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

La partie que je voudrais supprimer est:

this.cbAllSyncs.SelectedItem.ToString()

Je sais que je peux compter le nombre de mots et de points et entrer 7dwpour supprimer de la position actuelle du curseur "ceci". Cependant, ce que j'aimerais faire, c'est ne pas avoir à compter du tout et supprimer dans l'espace avec une seule commande. Est-ce possible?

Réponses:


343

Essayez dtspace. En général dtxsupprime de la position actuelle jusqu'à juste avant x. Il suffit de txdéplacer le curseur juste avant le caractère de xla ligne courante.

Pour supprimer jusqu'à et y compris l'espace, utilisez dfspace.


2
Cela fonctionne très bien! Cela me donne également une certaine flexibilité supplémentaire pour arriver à d'autres certains points de cet objet. Merci!
Blake Blackwell

27
df<space>supprime jusqu'à et y compris l'espace suivant.
glenn jackman

5
tout aussi utile, dfT <espace> supprime jusqu'à l'espace précédent.
hgmnz

3
Vous pouvez également ajouter un décompte juste avant le tpour supprimer jusqu'à autant de caractères. par exemple d2t<space>supprimera jusqu'à deux espaces.
Waseem

7
J'utilise toujours le mnémonique tcomme 'till stackoverflow.com/questions/7409134
...

71

Vous pouvez utiliser dWou dEcomme @glenn suggéré si vous ne souhaitez pas supprimer l'espace lui-même.

Un MOT (W majuscule) se compose d'une séquence de caractères non vides, séparés par des espaces.

Jetez un œil aux motions .


1
Si je pouvais voter pour deux réponses, je le ferais, car cela résout la question précise que j'ai posée. Merci pour le lien!
Blake Blackwell

5
ou dE- supprimer jusqu'à la fin de la séquence de caractères non vierges (n'inclut pas le blanc suivant)
glenn jackman

@BlakeBlackwell Qui a dit que vous ne pouviez pas voter pour deux réponses? je l'ai déjà fait sur cette question. Ce sont des informations utiles.
javadba

20

une solution possible consiste à utiliser la suppression avec une recherche.

alors tapez d/<space>et vim supprimera jusqu'à ce qu'il atteigne un espace.


2
Ceci est plus général que dWparce que vous pouvez également l'utiliser pour supprimer du curseur vers n'importe quel caractère, tel que 2d/+, dans ce cas, ce qui supprimerait également les concaténations de chaînes.
Dave Jarvis

1
vous pouvez faire 2dW et cela fonctionne tout aussi bien. en fait, je considère que c'est une meilleure solution car elle fonctionnera également avec les onglets et autres espaces. Il supprime également l'espace blanc de fin que vous souhaitez supprimer jusqu'à.
barkmadley

15

Si vous souhaitez supprimer n'importe où dans le MOT, et en une seule commande, utilisez simplement daW

(vous pouvez bien sûr utiliser dawsi vous souhaitez vous limiter à un mot)

Je l'utilise beaucoup car cela évite de passer au début du mot (dans votre cas)


daw et daW se comportent de la même manière pour moi - tous deux suppriment le mot entier, quelle que soit la lettre sur laquelle se trouve le curseur. Pas certain de pourquoi.
Will

daw ne supprimera pas les espaces blancs après le mot, alors que daW le fera
Louis

5
  • supprimer pour la position actuelle à un exemple de caractère spécifique "

    dt "
  • supprimer le mot de la position le curseur est allumé jusqu'à la fin du mot

    dw
  • supprimer le mot entier sur lequel se trouve le curseur quelle que soit la position du curseur sur le mot, cela vous met également en mode insertion pour vous permettre d'insérer immédiatement.

    diw

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.