Personalizando separadores de palabras en vi
Pregunta
vi trata el guión -
y el espacio & nbsp;
como separadores de palabras para comandos como dw
y cw
.
¿También hay una forma de agregar un guión bajo _
?
Muy a menudo quiero cambiar parte de un nombre de variable que contiene guiones bajos, como cambiar src_branch
a dest_branch
. Termino contando caracteres y utilizando s
(como 3sdest
), pero sería mucho más fácil usar cw
(como cwdest ).
Solución
En caso de que estés usando vim, puedes cambiarlo configurando la opción iskeyword
(: he iskeyword
). Si esa no es una opción, siempre puede usar ct_
en lugar de contar.
Otros consejos
¿También hay una forma de agregar un guión bajo
_
?
:set iskeyword-=_
Otra buena opción en estos casos es usar camelcasemotion plugin .
Agrega nuevos movimientos , b
, , e
y , w
, que funcionan de manera análoga con b
, e
y w
, excepto que reconocen las palabras CamelCase y snake_case. Con él puedes utilizar
c,edest
y esto reemplazará a " src_branch " con " dest_branch " si el cursor estaba en el primer carácter de " src_branch " ;.
Puede escribir cf_dest_
y guardar la parte de conteo.
Editar: o como se sugiere: ct_
cambia el texto hasta justo antes del carácter de subrayado. (Estoy usando el movimiento f
más, por lo que fue más natural para mí)
O puede redefinir 'iskeyword'
(: help iskeyword
para más detalles).
Yo solo estaba mirando esto y lo agregué a mi .vimrc:
set iskeyword=!-~,^*,^45,^124,^34,192-255,^_
Mi .vimrc tuvo problemas con ^ | y ^ " ;, que era parte de la palabra clave predeterminada para mi configuración, por lo que cambié a sus valores ascii y funciona bien. Mi principal modificación fue agregar " ^ _ " hasta el final de la configuración predeterminada para evitar que vim vea el subrayado como parte de una palabra.