在AUCTeX中 M-RET 绑定到(LaTeX-insert-item)
,这会产生一个新的正确缩进行并插入\item
和一个空格,之后放置光标。我想扩展此功能,以便 C-M-RET 具有类似的功能,但适用于\item[description]
。
我想要的是 C-M-RET
\item[]
,\item[]
之后,按 Tab 。答案 0 :(得分:2)
以下函数来自latex.el,并略微修改以调用参数提示版本LaTeX-item-argument
,而不是直接插入项目。
(defun LaTeX-insert-item-arg ()
"Insert a new item in an environment, prompting for an item label.
You may use `LaTeX-item-list' to change the routines used to insert the item."
(interactive "*")
(let ((environment (LaTeX-current-environment)))
(when (and (TeX-active-mark)
(> (point) (mark)))
(exchange-point-and-mark))
(unless (bolp) (LaTeX-newline))
(if (assoc environment LaTeX-item-list)
(funcall (cdr (assoc environment LaTeX-item-list)))
(LaTeX-item-argument)) ;; ONLY THIS LINE IS DIFFERENT
(indent-according-to-mode)))
您可以将该功能绑定到您喜欢的任何键:
(add-hook 'LaTeX-mode-hook (lambda ()
(local-set-key [(control return)] 'LaTeX-insert-item-arg)))
如果您需要M-C-RET
,请改用(meta control return)
,但它似乎只能使用Alt
密钥,而不是Esc
密钥(通常表现相同) ...)
答案 1 :(得分:1)
听起来你想要Textmate片段行为。
您需要yasnippet才能进行代码段扩展/字段移动。 IMO,将它绑定到密钥并不是一个好的解决方案,因为密钥的数量是有限的,但yasnippet也允许你这样做。