В Emacs есть ли способ управления, где курсор/точка попадает в расширение аббревиатуры?Как управлять размещением курсора в расширении аббревиатуры Emacs?
Вы знаете, что-то вроде этого?
("orgfootnote" "[fn:: %?]" nil 0)
В Emacs есть ли способ управления, где курсор/точка попадает в расширение аббревиатуры?Как управлять размещением курсора в расширении аббревиатуры Emacs?
Вы знаете, что-то вроде этого?
("orgfootnote" "[fn:: %?]" nil 0)
Abbrev не предлагает эту функцию самостоятельно, но они предлагают достаточно крючков, чтобы сделать это извне. .
(define-skeleton my-orgfootnote "Docstring." nil
"fn::" _ "]")
, а затем использовать сокращения как
("orgfootnote" "" my-orgfootnote)
Отлично! В случае, если кто-то заинтересован в его использовании для фактического синтаксиса сноски, я слегка отрегулировал интервал: '(define-skeleton my-orgfootnote" Docstring. "Nil " [fn :: "_"] \ n \ n ")' – incandescentman
Если вы имеете в виду встроенную функцию аббревиатуры, то вот моя проблема. С помощью этого deafdvice, если у вас есть аббревиатура, содержащая строку @@, то после exapnsion курсор будет помещен в эту позицию в расширенном тексте, где встречается @@.
(defadvice expand-abbrev (after my-expand-abbrev activate)
;; if there was an expansion
(if ad-return-value
;; start idle timer to ensure insertion of abbrev activator
;; character (e.g. space) is finished
(run-with-idle-timer 0 nil
(lambda()
;; if there is the string "@@" in the
;; expansion then move cursor there and
;; delete the string
(let ((cursor "@@"))
(if (search-backward cursor last-abbrev-location t)
(delete-char (length cursor))))))))
Если вам необходимо заполнить шаблон, то abbrev
неправильный объект. Я очень рекомендую yasnippet
. abbrev
очень полезен для исправления частых опечаток.
Это Emacs так, конечно, можно что-то сделать! Не могли бы вы подробнее рассказать о том, где теперь находится курсор, и где вы хотите, чтобы это закончилось? Кроме того, дважды проверьте и убедитесь, что знаете, какой режим аббревиатуры вы используете, поскольку для Emacs есть пара из них. –