La solución más simple: usar ciW
para seleccionar una palabra delimitada por espacios en blanco.
El problema más grande tiene que ver con el valor del _
personaje en la tabla de sintaxis . El problema es que _
, por defecto, es un componente de símbolo en la tabla de sintaxis, y desea tratarlo como un componente de palabra.
Si está utilizando emacs 24.4, puede intentar habilitarlo superword-mode
. No lo he probado yo mismo, por lo que su kilometraje puede variar.
Una alternativa es simplemente modificar la tabla de sintaxis usted mismo y decirle a Emacs que desea que trate el _
carácter como un componente de la palabra, así:
(modify-syntax-entry ?_ "w")
Después de hacer eso, ciw
funciona como lo desea, de modo que seleccionará todo en abc_def_ghi
lugar de solo def
.
Sin embargo, hacerlo de esta manera puede ser excesivo, especialmente si solo desea _
que cuente como parte de la palabra para el objeto de texto. En cambio, puede aconsejar evil-inner-word
lo siguiente:
(defadvice evil-inner-word (around underscore-as-word activate)
(let ((table (copy-syntax-table (syntax-table))))
(modify-syntax-entry ?_ "w" table)
(with-syntax-table table
ad-do-it)))
Ahora, _
sigue siendo un símbolo constituyente de todo, excepto del objeto de texto de la palabra interna, por ciw
lo que hará exactamente lo que desee sin tocar la funcionalidad de nada más.
Puede leer más sobre cómo modificar tablas de sintaxis en el nodo EmacsWiki .
w
,aw
, etc.), se puede hacer lo mismo con las siguientes funciones también:evil-forward-word-begin
,evil-forward-word-end
,evil-backward-word-begin
,evil-backward-word-end
,evil-a-word
,evil-inner-word
. Nota: debe cambiarunderscore-as-word
a valores diferentes, únicos (arbitrarios).