Updated duplicate-thing to optionally comment out original thing.

This commit is contained in:
Lars Tveito 2015-03-31 22:01:41 +02:00
parent 746dbec267
commit 0f3ce6d6fd
2 changed files with 12 additions and 8 deletions

10
init.el
View File

@ -635,16 +635,18 @@ the buffer is buried."
;; To duplicate either selected text or a line we define this interactive
;; function.
(defun duplicate-thing ()
"Duplicates the current line, or the region if active."
(interactive)
(defun duplicate-thing (comment)
"Duplicates the current line, or the region if active. If an argument is
given, the duplicated region will be commented out."
(interactive "P")
(save-excursion
(let ((start (if (region-active-p) (region-beginning) (point-at-bol)))
(end (if (region-active-p) (region-end) (point-at-eol))))
(goto-char end)
(unless (region-active-p)
(newline))
(insert (buffer-substring start end)))))
(insert (buffer-substring start end))
(when comment (comment-region start end)))))
;; To tidy up a buffer we define this function borrowed from [[https://github.com/simenheg][simenheg]].

View File

@ -812,16 +812,18 @@
function.
#+BEGIN_SRC emacs-lisp
(defun duplicate-thing ()
"Duplicates the current line, or the region if active."
(interactive)
(defun duplicate-thing (comment)
"Duplicates the current line, or the region if active. If an argument is
given, the duplicated region will be commented out."
(interactive "P")
(save-excursion
(let ((start (if (region-active-p) (region-beginning) (point-at-bol)))
(end (if (region-active-p) (region-end) (point-at-eol))))
(goto-char end)
(unless (region-active-p)
(newline))
(insert (buffer-substring start end)))))
(insert (buffer-substring start end))
(when comment (comment-region start end)))))
#+END_SRC
To tidy up a buffer we define this function borrowed from [[https://github.com/simenheg][simenheg]].