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

View File

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