Мне нужно получить доступ к выделению в буфере Emacs. Я нашел эту статью Как получить доступ к содержимому текущего региона в Emacs Lisp? и это мне очень помогает.
Но есть проблема. В первый раз, когда я выбираю (выделяю) регион, он работает нормально, но когда я нажимаю Cg и обычно перемещаю курсор в другое место, не выделяя никаких символов, я получаю строку от последней метки до текущей точки, в то время как я ожидаю пустой .
На самом деле мне нужно реализовать функцию, которая будет возвращать текущий выбор (выделенный) в виде строки или пустой строки, если ничего не выделено. Следующий код может выразить меня более ясно.
(defun get-search-term ()
(interactive)
(let (
(selection (buffer-substring-no-properties (region-beginning) (region-end))))
(if (= (length selection) 0)
(message "empty string")
(message selection))))
Есть предложения? Большое спасибо!