Skip to content

Instantly share code, notes, and snippets.

@timcharper
Created October 17, 2009 08:51
Show Gist options
  • Save timcharper/212300 to your computer and use it in GitHub Desktop.
Save timcharper/212300 to your computer and use it in GitHub Desktop.
;; vines
(defun find-non-escaped-paren (kind direction)
(cond ((= direction -1) (re-search-backward kind))
((= direction 1) (search-forward kind) (backward-char))
)
(cond ((looking-back "\\\\" 1) (find-non-escaped-open-paren kind direction)))
)
(defun select-previous-paren ()
(interactive)
(find-non-escaped-paren "(" -1)
(setq p1 (point))
(forward-list)
(setq p2 (point))
(goto-char p1)
(push-mark p2)
(setq mark-active t)
)
(defun select-next-paren ()
(interactive)
(cond ((looking-at "(") (forward-char)))
(find-non-escaped-paren "(" 1)
(setq p1 (point))
(forward-list)
(setq p2 (point))
(goto-char p1)
(push-mark p2)
(setq mark-active t)
)
(defun select-outer-paren ()
(interactive)
(up-list)
(setq p1 (point))
(backward-list)
(setq p2 (point))
(goto-char p1)
(push-mark p2)
(setq mark-active t)
)
(global-set-key (kbd "A-(") 'select-previous-paren)
(global-set-key (kbd "A-)") 'select-next-paren)
(global-set-key (kbd "A-9") 'select-outer-paren)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment