Il modo più semplice per eliminare una parola "composita"?


20

Ci scusiamo se "composito" non è il termine tecnico. Intendo quanto segue:

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

Vorrei cancellare solo la parola composita. In modalità comando, se sposto il cursore su I, quindi ripeto dwalcune volte, o meglio digitando dwuna volta, seguito da alcune .pressioni, farà il trucco. Tuttavia, per vari motivi mi ritrovo a farlo abbastanza spesso durante il giorno, quindi mi chiedevo se ci fosse un modo più semplice.

PS NON considererei il comando d9wcome un modo più semplice. Contare una lunga sequenza di parole e trattini non è la mia idea di "più semplice".

Risposte:


33

Quella che chiami una parola composita è in realtà una PAROLA (in opposizione a una parola). Lettura :h worde :h WORDdovrebbe essere 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.

Quello che stai cercando qui è dWquando sei sul Io diWquando sei ovunque nella parola.

Forse in futuro dovrai anche leggere :h 'iskeyword'.


1
grazie per la risposta: funziona. A proposito della definizione: A WORD consists of a sequence of non-blank characters, separated with white space. Separated with white spacesignifica che la PAROLA è separata da altre parole o PAROLE con uno spazio bianco, giusto?
DeltaIV,

2
@DeltaIV Yup in-this-sentence there are four"WORDsle 4 parole sono in-this-sentence, there, aree four"WORDs. È facile vedere ad esempio quando si usano we Wo be Bmovimenti. Si noti che uno spazio bianco può essere uno spazio "normale" o un carattere di tabulazione.
statox

1
Questa risposta sarebbe più immediatamente utile se iniziasse con "Quello che stai cercando qui è dW .." piuttosto che forzare il lettore a passare al paragrafo centrale per trovare la soluzione.
Mark Meuer,

9

Un'altra soluzione più generale è quella di eliminare fino al carattere degli spazi bianchi usando dt (con uno spazio dopo il t), che significa "elimina in [carattere]. Questo spesso è utile per cose simili dt:e simili.


ciò che dt: fare?
DeltaIV,

1
Quando ho pubblicato la stessa risposta, ho imparato che è possibile utilizzare <code>dt </code>per includere uno spazio alla fine.
BurnsBA

2
@DeltaIV In realtà ciò di cui hai veramente bisogno è leggere :h motion.txte usare vimtutor, che ti aiuterà molto a ottenere le basi di Vim
statox

@statox Ero abile in VIM ... 10 anni fa :-) vimtutorsembra molto interessante. Non sono sicuro che sia installato sul server remoto (sembra che nemmeno l' manutility sia installata). Tuttavia, controllerò: se viene installato automaticamente insieme al vimpacchetto, allora è molto probabile che sarò in grado di usarlo.
DeltaIV,

1
@BurnsBA Grazie, è davvero utile per questo sito. Btw. puoi modificare i post di altri e persino ottenere la reputazione di +2 se la tua modifica supera un processo di revisione tra pari. Ma in questo modo, ho imparato anche qualcosa di nuovo :-).
allo

4

Se vuoi continuare a usare dwe simili e vuoi anche farlo funzionare facendo doppio clic su una parola, puoi aggiungere

set iskeyword+=-

al tuo .vimrc, che aggiunge -come carattere parola.

Esempio:

Fai doppio clic su qualsiasi personaggio in ab-cdevidenza visivamente ab-cd.


Sto bene con il passaggio a dW, ma la tua soluzione è anche piuttosto interessante perché influisce anche sulla modalità visiva, immagino. Voglio dire, modificando il iskeyword, facendo doppio clic e quindi premendo dI dovrebbe essere in grado di eliminare ab-cd. Giusto?
DeltaIV,

O forse dovrei passare alla modalità visiva con v, piuttosto che fare doppio clic. Giusto?
DeltaIV,

1
@DeltaIV modificando iskeyword, puoi usare qualsiasi metodo con oggetti word (incluso iw o aw, significativamente più semplice rispetto all'utilizzo di un mouse o modalità visiva)
D. Ben Knoble

4

Non dimenticare i comandi f(trova) e t(to). Probabilmente avrei solo dt o df (notare lo spazio alla fine).

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.