Personalizzazione dei separatori di parole in vi
Domanda
vi tratta trattino -
e spazio & nbsp;
come separatori di parole per comandi come dw
e cw
.
Esiste un modo per aggiungere anche il carattere di sottolineatura _
?
Spesso desidero cambiare parte del nome di una variabile contenente caratteri di sottolineatura, come cambiare src_branch
in dest_branch
. Finisco per contare i caratteri e usare s
(come 3sdest
), ma sarebbe molto più facile usare cw
(come cwdest
).
Soluzione
Nel caso in cui usi vim, puoi cambiarlo impostando l'opzione iskeyword
(: he iskeyword
). Se questa non è un'opzione, puoi sempre usare ct_
invece di contare.
Altri suggerimenti
Esiste un modo per aggiungere anche il carattere di sottolineatura
_
?
:set iskeyword-=_
Un'altra buona opzione in questi casi è l'uso del plug-in camelcasemotion .
Aggiunge nuovi movimenti , b
, , e
e , w
, che funzionano in modo analogo a b
, e
e w
, tranne per il fatto che riconoscono le parole CamelCase e snake_case. Con esso puoi usare
c,edest
e questo sostituirà " src_branch " con " dest_branch " se il cursore si trovava sul primo carattere di " src_branch " ;.
È possibile digitare cf_dest_
e salvare la parte di conteggio.
Modifica: o come suggerito: ct_
modifica il testo fino a poco prima del carattere sottolineato. (Sto usando il movimento f
di più, quindi mi è venuto più naturale)
O potresti ridefinire 'iskeyword'
(: help iskeyword
per i dettagli).
Stavo solo guardando questo da solo e l'ho aggiunto al mio .vimrc:
set iskeyword=!-~,^*,^45,^124,^34,192-255,^_
Il mio .vimrc ha avuto problemi con ^ | e ^ " ;, che faceva parte dell'iskeyword predefinito per la mia configurazione, quindi ho cambiato i loro valori ASCII e funziona benissimo. La mia modifica principale è stata l'aggiunta di " ^ _ " alla fine dell'impostazione predefinita per impedire a vim di vedere il carattere di sottolineatura come parte di una parola.