diff options
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-editing.el')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-editing.el | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-editing.el b/emacs/.emacs.d/lisp/my/my-editing.el index f8e405e..b24103f 100644 --- a/emacs/.emacs.d/lisp/my/my-editing.el +++ b/emacs/.emacs.d/lisp/my/my-editing.el @@ -481,5 +481,32 @@ With an prefix-arg, copy the file name relative to project root." (goto-char (point-min)) (forward-line (1- line-number)))))) +(defun my-mark-backward-up-list () + "Mark the sexp containing the current one." + (interactive) + (backward-up-list) + (activate-mark) + (set-mark (point)) + (forward-sexp) + (exchange-point-and-mark)) + +(defun my-kill-sexp-or-comment (&optional n) + "Kill the next n sexp. On failure, call `comment-kill' instead." + (interactive) + (condition-case _ + (kill-sexp n) + (scan-error (comment-kill (or n 1))))) + +(defun my-mark-sexp-or-comment () + "Mark the next sexp or comment." + (interactive) + (condition-case _ + (mark-sexp) + (user-error + (set-mark + (save-excursion + (forward-comment 1) + (point)))))) + (provide 'my-editing) ;;; my-editing.el ends here |