emacs:函数中返回两行?
我在emacs点文件中有一个函数,可以在日志中插入日期。添加之后,我想向后跳几行,将光标放在日期下方。在函数中如何执行该操作emacs:函数中返回两行?,emacs,lisp,Emacs,Lisp,我在emacs点文件中有一个函数,可以在日志中插入日期。添加之后,我想向后跳几行,将光标放在日期下方。在函数中如何执行该操作 (defun ddd () "Insert date at point journal style." (interactive) (insert (format-time-string "[%Y-%m-%d %a]")) (insert "\n") (insert "\n") (insert "\n") (insert "** end\n")
(defun ddd ()
"Insert date at point journal style."
(interactive)
(insert (format-time-string "[%Y-%m-%d %a]"))
(insert "\n")
(insert "\n")
(insert "\n")
(insert "** end\n")
(gobacktwolineshere))
有什么想法吗?如果您知道要返回多少个字符,您可以使用
(向后字符9)
您想要的功能向前行
(forward-line -2)
向后走两行。有关详细信息,请在
emacs
内键入C-h f forward line RET
。根据您离开点的位置,您可能不会在行首结束。如果您想这样做,请添加一个对行开头的调用
记住,如果您可以告诉Emacs以交互方式执行此操作(例如,在本例中使用或C-p),那么您可以在键入时通过前缀C-hk询问Emacs它执行什么操作
在本例中,Emacs告诉您这些键运行命令前一行
,并且:
如果你想在LISP程序中使用这个,请考虑使用
向前行
,改为使用负参数。通常比较容易
使用和更可靠(不依赖于目标列等)
您可能希望使用
保存偏移
使其更加健壮:
(defun ddd ()
"Insert date at point journal style."
(interactive)
(insert (format-time-string "[%Y-%m-%d %a]\n"))
(save-excursion (insert "\n\n** end\n")))
这可能有点脆弱,因为它取决于插入的字符数。是的,这可能是解决问题的最佳解决方案,即使它不是所述问题的答案。