Componentes de la palabra: 'w'
Partes de palabras en lenguas humanas. Normalmente se usan en nombres de variables y comandos en programas. Todas las letras mayúsculas y minúsculas, y los dígitos, son típicamente componentes de palabras.
Componentes del símbolo: '_'
Caracteres adicionales utilizados en nombres de variables y comandos junto con componentes de palabras. Los ejemplos incluyen los caracteres '$ & * + -_ <>' en modo Lisp, que pueden ser parte del nombre de un símbolo aunque no sean parte de palabras en inglés. En el estándar C, el único carácter que no es un componente de la palabra que es válido en los símbolos es el subrayado "_".
Cortesía de gnu.org.
¿Cuándo debo usar cada uno? Por ejemplo, dado un lenguaje de programación que escribe variables en el caso de serpiente foo_bar, ¿debería _ ser parte de una palabra o símbolo?
Depende de lo que quieras lograr. Diré, '_' debería ser parte de la palabra. De esa manera, foo_bar será tratado como una palabra.
Eche un vistazo a esa pregunta , hay una respuesta interesante que habla sobre el modo superword y el modo subword
c-mode
que viene con emacs se usa_
como un componente de símbolo pero no como un componente de palabra. Así que espero que haya una buena razón para eso. Sin mencionar la gran cantidad de comandos de navegación que funcionarán como se esperaba. Principio de menor sorpresa y todo eso.