Constituintes da palavra: 'w'
Partes de palavras em línguas humanas. Eles são normalmente usados em nomes de variáveis e comandos em programas. Todas as letras maiúsculas e minúsculas e os dígitos são tipicamente constituintes das palavras.
Componentes do símbolo: '_'
Caracteres extras usados nos nomes de variáveis e comandos, juntamente com os constituintes da palavra. Os exemplos incluem os caracteres '$ & * + -_ <>' no modo Lisp, que podem fazer parte do nome de um símbolo, mesmo que não façam parte das palavras em inglês. No padrão C, o único caractere não constituinte de palavras válido em símbolos é sublinhado "_".
Cortesia de gnu.org
Quando devo usar cada um? Por exemplo, dada uma linguagem de programação que escreve variáveis no caso de cobra foo_bar, _ deve fazer parte de uma palavra ou símbolo?
Depende do que você deseja alcançar. Eu direi, '_' deve fazer parte da palavra. Dessa forma, foo_bar será tratado como uma palavra.
Por favor, olhe para essa pergunta , há uma resposta interessante falando sobre o modo superword e modo subword
c-mode
que acompanha o emacs usa_
como componente de símbolo, mas não como componente de palavra. Então, espero que haja uma boa razão para isso. Sem mencionar a infinidade de comandos de navegação que funcionarão conforme o esperado. Princípio da menor surpresa e tudo isso.