2008-10-22 9 views
44

vi trata el dash - y el espacio   como separadores de palabras para comandos como dw y cw.Personalización de separadores de palabras en vi

¿Hay alguna manera de agregar subrayado _ también?

A menudo quiero cambiar parte de un nombre de variable que contenga guiones bajos, como cambiar src_branch a dest_branch. Termino contando caracteres y usando s (como 3sdest), pero sería mucho más fácil de usar cw (como cwdest).

+0

FWIW puede evitar el recuento con 'ct_dest' – Cuadue

Respuesta

17

En caso de que esté utilizando vim, puede cambiar eso configurando la opción iskeyword (:he iskeyword). Si esa no es una opción, siempre puede usar ct_ en lugar de contar.

+0

Sólo vi, no vim. No estaba al tanto de ct, eso ciertamente será una ayuda, gracias –

1

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 podría redefinir 'iskeyword' (:help iskeyword para más detalles).

0

que solo estaba buscando en este mismo y ha añadido esto a mi .vimrc:

set iskeyword=!-~,^*,^45,^124,^34,192-255,^_ 

Mi .vimrc tenía problemas con^| y^", que era parte de la palabra clave predeterminada para mi configuración, así que cambié a sus valores ascii y funciona bien. Mi modificación principal fue agregar"^_ "al final de la configuración predeterminada para evitar que vim vea el guión bajo como parte de una palabra.

+3

FYI, quitar el guión bajo de iskeyword puede estropear el resaltado de la sintaxis. Si alguien sabe cómo hacer que vim vea el guión bajo como un carácter no verbal para fines de navegación, pero no para resaltar la sintaxis, házmelo saber. – kbosak

+0

Puede usar un complemento para obtener este efecto, por ejemplo, camelcasemotion. –

31

¿hay una manera de agregar subrayado _ así?

:set iskeyword-=_ 
+2

Estaba usando vi, no vim, entonces no es una opción –

+1

¿Alguna razón para usar vi en lugar de vim? – g33kz0r

+4

¡Supongo que nunca has trabajado en un entorno bloqueado y controlado por cambios controlados por PHB paranoicos!:) es decir, si se hubiera instalado vim habría significado un mundo de dolor ... –

4

otra buena opción en estos casos es utilizar camelcasemotion plugin.

Agrega nuevas mociones ,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 se puede utilizar

c,edest 

y esto va a reemplazar "src_branch" con "dest_branch" si el cursor estaba en primer carácter de "src_branch".