4

Is there a key combination to move the insertion point backward and forward through arguments using AUCTeX? For example, where "|" is my insertion point:

\frac{|}{}

Then I would want a command to move it:

\frac{}{|}

And perhaps another command to move it back:

\frac{|}{}

And another to move it out:

\frac{}{}|
  • yasnippet does this sort of thing very well. Somebody has already written quite a few snippets for LaTeX, such as this one for \frac{}. yasnippet can be used in other modes and languages as well as in TeX. – SlowLearner Oct 5 '13 at 22:48
5

To move between empty groups I use these functions (can be improved of course):

(defun mg-TeX-forward-group ()
  "Move to the next empty group."
  (interactive)
  (let ((group (save-excursion (search-forward-regexp "{[^}]*}" nil t))))
    (when group
      (set-mark (point))
      (deactivate-mark)
      (goto-char group)
      (backward-char 1))))
(eval-after-load "tex"
  '(define-key TeX-mode-map [M-right] 'mg-TeX-forward-group))
(defun mg-TeX-backward-group ()
  "Move to the previous empty group."
  (interactive)
  (let ((group (save-excursion (search-backward-regexp "{[^}]*}" nil t))))
    (when group
      (set-mark (point))
      (deactivate-mark)
      (goto-char group)
      (forward-char 1))))
(eval-after-load "tex"
  '(define-key TeX-mode-map [M-left] 'mg-TeX-backward-group))
  • Changing search-forward "{}" to search-forward-regexp "{[^}]*}" and search-backward "{}" to search-backward-regexp "{[^}]*}" is more what I was looking for. – Geremia Oct 6 '13 at 4:43
  • @Geremia Your change has been approved, but you need to then change what the OP wrote about moving between empty groups. The change you made will pick up non-empty groups too. – A.Ellett Oct 7 '13 at 17:35
  • @A.Ellett That's fine. – Geremia Nov 7 '13 at 23:31
  • Upon starting Emacs, I get this strange error when putting your code in my ~/.emacs file: Symbol's value as variable is void: TeX-mode-map. – Geremia Nov 7 '13 at 23:40
  • @Geremia I keep forgetting to wrap an eval-after-load around define-keys. I'll update my answer. – giordano Nov 8 '13 at 0:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.