在emacs-lisp中,如何在文本字符串中间定位点



在emacs-lisp中,如何将点放在文本字符串的中间?我希望我的光标能在以下功能中结束%s的位置:

(defun web-research ()
(interactive)
(insert "#+BEGIN_QUOTEnn%sn#+END_QUOTEn")
(org-mac-chrome-insert-frontmost-url)
)

有很多选择。例如,

(defun web-research ()
  (interactive)
  (insert "#+BEGIN_QUOTEnn%sn#+END_QUOTEn")
  (search-backward "%")
  (org-mac-chrome-insert-frontmost-url))

(defun web-research ()
  (interactive)
  (insert "#+BEGIN_QUOTEnn")
  (let ((p (point)))
    (insert "nn#+END_QUOTEn")
    (org-mac-chrome-insert-frontmost-url)
    (goto-char p))

(defun web-research ()
  (interactive)
  (insert "#+BEGIN_QUOTEnn%s")
  (save-excursion (insert "n#+END_QUOTEn"))
  (org-mac-chrome-insert-frontmost-url))

imo第二是最好的。

您可能可以使用yasnippet之类的东西。

# -*- mode: snippet -*-
# name: web-research
# expand-env: ((yas-indent-line 'fixed))
# key: wr
# --
#+BEGIN_QUOTE
%s$0
#+END_QUOTE
`(if (boundp 'org-mac-chrome-get-frontmost-url) (org-mac-chrome-get-frontmost-url) "http://www.example.com/")`

我似乎没有org-mac-chrome-get-frontmost-urlinsert变体,但是经过快速搜索,我猜org-mac-chrome-get-frontmost-url是与此解决方案一起使用的。

最新更新