Я не совсем эксперт по LISP, поэтому, пожалуйста, простите довольно новый вопрос.
Я пишу довольно простую функцию elisp, пытаясь найти короткую строку в той же строке, что и текущий курсорпозиция.Соответствующая часть кода, как написано сейчас:
(let ((matchpos (search-forward myword (line-end-position) t)))
(if matchpos
(goto-char (- matchpos (length myword)))
(setq matchpos (search-backward myword (line-beginning-position) t)))
...
Это в основном работает без проблем, но не может найти строку, содержащую текущую позицию курсора.По-видимому, поиск назад ищет только те строки, которые заканчиваются перед точкой.По правде говоря, я могу решить эту конкретную проблему, перейдя в конец строки перед выполнением обратного поиска, но мне довольно любопытно, можно ли изменить это поведение.
Есть ли какой-либо вариант в поиске-в обратном направлении, которое соответствует любой строке, которая начинается до точки?
Редактировать: Возможно, приведен пример, так как отвечающие не совсем понимают вопрос.Предположим, я ищу строку «search this», и моя строка выглядит следующим образом (точка, отмеченная *):
I want to search this string, I have code to search t*his string
К сожалению, фрагмент кода, показанный выше, перемещает точку на сначала вхождение «search this» в строке выше.Я хочу, чтобы точка заканчивалась в начале секундной строки "search this", той, которая в данный момент содержит точку, поскольку она является ближайшей.