Le moyen le plus simple de supprimer un mot «composite»?

20

Toutes mes excuses si "composite" n'est pas le terme technique. Je veux dire ce qui suit:

Hi, I-am-a-composite-word and we are not

Je voudrais supprimer uniquement le mot composite. En mode commande, si je déplace le curseur sur I, puis répéter dwplusieurs fois, ou mieux taper dwune fois, suivi de quelques .pressions, fera l'affaire. Cependant, pour diverses raisons, je me retrouve à faire cela assez souvent pendant la journée, donc je me demandais s'il y avait un moyen plus simple.

PS Je ne considérerais PAS la commande d9wcomme un moyen plus simple. Compter une longue séquence de mots et de tirets n'est pas mon idée de "plus simple".

DeltaIV
la source

Réponses:

33

Ce que vous appelez un mot composite est en fait un MOT (par opposition à un mot). La lecture :h wordet :h WORDdevrait être utile:

                            *word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
is also considered to be a word.
                            *WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space.  An empty line is also considered to be a WORD.

Ce que vous cherchez ici, c'est dWlorsque vous êtes sur Iou diWlorsque vous êtes n'importe où dans le mot.

À l'avenir, vous devrez peut-être également lire :h 'iskeyword'.

statox
la source
1
merci pour la réponse: ça marche. Apropos de la définition: A WORD consists of a sequence of non-blank characters, separated with white space. Separated with white spacesignifie que le MOT est séparé par d'autres mots ou MOTS avec un espace blanc, non?
DeltaIV
2
Eh oui @DeltaIV in-this-sentence there are four"WORDsles 4 mots sont in-this-sentence, there, areet four"WORDs. Il est facile de voir quand vous utilisez les mouvements wand Wou bet Bpar exemple. Notez qu'un espace peut être un espace "normal" ou un caractère de tabulation.
statox
1
Cette réponse serait plus immédiatement utile si elle commençait par "Ce que vous cherchez ici est dW .." plutôt que de forcer le lecteur à parcourir le paragraphe du milieu pour trouver la solution.
Mark Meuer
9

Une autre solution plus générale consiste à supprimer jusqu'au caractère blanc en utilisant dt (avec un espace après le t), ce qui signifie «supprimer vers [caractère]. Cela est souvent utile pour des choses comme dt:et similaires également.

allo
la source
qu'est-ce que ça dt: fait?
DeltaIV
1
Lorsque j'ai posté la même réponse, j'ai appris que vous pouvez utiliser <code>dt </code>pour inclure un espace à la fin.
BurnsBA
2
@DeltaIV En fait, ce dont vous avez vraiment besoin est de lire :h motion.txtet d'utiliser vimtutor, cela vous aidera grandement à obtenir les bases de Vim
statox
@statox J'étais habitué au VIM ... il y a 10 ans :-) vimtutorsemble très intéressant. Je ne suis pas sûr qu'il soit installé sur le serveur distant (il semble que même l' manutilitaire ne soit pas installé). Cependant, je vais vérifier: s'il est automatiquement installé avec le vimpackage, il y a de fortes chances que je puisse l'utiliser.
DeltaIV
1
@BurnsBA Merci, c'est vraiment utile pour ce site. Btw. vous pouvez modifier les publications des autres et même obtenir une réputation de +2 si votre modification est effectuée via un processus d'examen par les pairs. Mais de cette façon, j'ai aussi appris quelque chose de nouveau :-).
allo
4

Si vous souhaitez continuer à utiliser dwet similaires, et que vous souhaitez également le laisser fonctionner en double-cliquant sur un mot, vous pouvez ajouter

set iskeyword+=-

à votre .vimrc, qui ajoute -un caractère de mot.

Exemple:

Double-cliquez sur n'importe quel caractère dans ab-cdles reflets visuels ab-cd.

nst0022
la source
Je suis d'accord pour passer à dW, mais votre solution est également assez cool car elle affecte également le mode visuel, je suppose. Je veux dire, en modifiant le iskeyword, en double-cliquant puis en appuyant sur dje devrais pouvoir supprimer ab-cd. Droite?
DeltaIV
Ou peut-être devrais-je passer en mode visuel avec v, plutôt que de double-cliquer. Droite?
DeltaIV
1
@DeltaIV en modifiant iskeyword, vous pouvez utiliser n'importe quelle méthode avec des objets word (y compris iw ou aw, beaucoup plus simple que d'utiliser une souris ou un mode visuel)
D. Ben Knoble
4

N'oubliez pas les commandes f(find) et t(to). Je serais probablement justedt ou df (notez l'espace à la fin).

BurnsBA
la source