Получить слово в точку

10

Это простая вещь. Мой курсор находится над словом, и я хочу получить слово, чтобы я мог что-то с ним сделать. Я вижу несколько разных способов сделать это, но хочу избежать повторного изобретения и использовать стандартный метод.

deadghost
источник
1
Вопрос неясен. Делать что-нибудь с этим где? В программе (код)? Интерактивное? Обе? Что за что-то?
Дрю
«Чтение» в Emacs и Emacs Lisp обычно означает чтение в интерактивном режиме или чтение (загрузка) кода на Lisp. Я отредактировал вопрос, чтобы сказать «получить» слово вместо «прочитать» его.
Дрю
Что значит «получить слово»? Вы хотите лисповское выражение, значением которого является строка, содержащая слово? Вы хотите отметить слово? Хотите добавить слово в список убийц?
Омар

Ответы:

14

Вы можете использовать функцию thing-at-pointи сказать ей, чтобы она возвращала wordточку at, а не возвращала какие-либо свойства текста (если они вам не нужны). Пример содержимого буфера (| - курсор):

Привет, мир | ld

Призыв (thing-at-point 'word 'no-properties)возвращает «мир».

Wieland
источник
1
(current-word &optional STRICT REALLY-WORD)

Вернуть слово в или около точки, как строку. Возвращаемое значение не содержит текстовых свойств.

user213294
источник
-1

Если вы хотите вставить слово (или что-то еще - имя файла и т. Д.) В точку в минибуфере, когда вы редактируете ввод, просто используйте M-., если вы используете Icicles .

См. Вставка текста из курсора .

Вы можете использовать M-.несколько раз (например M-. M-. M-.), чтобы:

  • Перейдите к другой вещи, чтобы схватить ее и вставить.
  • Вставьте больше (то есть, последовательные) вещи того же типа (например, слова) из буфера.
Нарисовалась
источник