Obter palavra no ponto

10

É uma coisa simples. Meu cursor está sobre uma palavra e quero obtê-la para que eu possa fazer algo com ela. Vejo algumas maneiras diferentes de fazer isso, mas quero evitar a reinvenção e usar um método padrão.

deadghost
fonte
11
A questão não é clara. Faça algo com ele onde? Em um programa (código)? Interativamente? Ambos? Que tipo de coisa?
Tirou
"Ler" no Emacs e no Emacs Lisp geralmente significa ler interativamente ou ler (carregar) o código Lisp. Eu editei a pergunta para dizer "pegue" a palavra em vez de "leia".
Tirou
O que significa "entender a palavra"? Deseja uma expressão Lisp cujo valor seja uma string que contenha a palavra? Deseja marcar a palavra? Você quer colocar a palavra no ringue da morte?
Omar

Respostas:

14

Você pode usar a função thing-at-pointe dizer a ela para retornar o wordponto inicial e não retornar nenhuma propriedade de texto (a menos que você precise delas). Exemplo de conteúdo do buffer (| é o cursor):

Olá wor | ld

A chamada (thing-at-point 'word 'no-properties)retorna "mundo".

Wieland
fonte
1
(current-word &optional STRICT REALLY-WORD)

Retorne a palavra no ponto ou próximo, como uma string. O valor de retorno não inclui propriedades de texto.

user213294
fonte
-1

Se você deseja inserir a palavra (ou qualquer outra coisa - nome do arquivo etc.) no ponto no minibuffer, quando estiver editando a entrada, basta usar M-.se usar Icicles .

Consulte Inserindo texto do cursor .

Você pode usar M-.repetidamente (por exemplo M-. M-. M-.) para:

  • Passe para um tipo diferente de coisa para pegar no ponto e insira-o.
  • Insira mais coisas (ou seja, sucessivas) do mesmo tipo (por exemplo, palavras) do buffer.
Desenhou
fonte