AucTeX中修改LaTeX-insert-item命令实现插入两行后添加\item
调整Emacs LaTeX模式
C-c C-j的换行行为 你的选择太对了——涉及Emacs Lisp的定制,在这儿提问比TeX Stack Exchange合适多了!
先给你确认:你对那段代码的理解完全准确!原代码里的
(unless (bolp) (LaTeX-newline))
就是判断光标如果不在当前行开头,就插入一个换行。你把它改成两次LaTeX-newline的思路完全没问题,修改后只要光标不在行首,执行C-c C-j就会先插两个换行,再添加\item。
不过有个实用小建议:直接修改latex.el源文件的话,以后Emacs更新时,你的定制很可能会被覆盖。更稳妥的方式是用Emacs的advice机制,不用改动原文件就能实现同样效果。你可以把这段代码加到你的init.el(或其他Emacs配置文件)里:
;; 自定义C-c C-j的前置换行:非行首时插入两个换行 (defun my-custom-latex-item-pre-newlines () (unless (bolp) (LaTeX-newline) (LaTeX-newline))) ;; 将自定义函数绑定到LaTeX-insert-item命令执行前 (advice-add 'LaTeX-insert-item :before #'my-custom-latex-item-pre-newlines)
配置完后,重启Emacs或者执行M-x eval-buffer加载配置,你的定制就生效了,而且不用担心后续Emacs更新会冲掉你的修改。
如果已经直接修改了latex.el,记得要重新加载该文件(通过M-x load-file选中latex.el)或者重启Emacs,修改才会生效哦~
内容的提问来源于stack exchange,提问作者J126
相关产品推荐
相关产品推荐

