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.


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".


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.


-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.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.