Skip to content

Instantly share code, notes, and snippets.

@c02y
Created September 3, 2018 09:42
Show Gist options
  • Save c02y/32d152ac019eb294f216930e693278da to your computer and use it in GitHub Desktop.
Save c02y/32d152ac019eb294f216930e693278da to your computer and use it in GitHub Desktop.
C-w/C-x w
(defun delete-line-or-region-or-buffer ()
"Delete current line, or text selection.
When `universal-argument' is called first, delete whole buffer (respects `narrow-to-region')."
(interactive)
(if current-prefix-arg
(delete-region (point-min) (point-max))
(progn (if (use-region-p)
(delete-region (region-beginning) (region-end))
(progn
(if (current-line-empty-p)
(delete-blank-lines)
(progn
(kill-region (line-beginning-position) (line-end-position))
(delete-char 1))))))))
(defun cut-line-or-region-or-buffer ()
"Cut current line, or text selection.
When `universal-argument' is called first, cut whole buffer (respects `narrow-to-region').
URL `http://ergoemacs.org/emacs/emacs_copy_cut_current_line.html'
Version 2015-06-10"
(interactive)
(if current-prefix-arg
(progn ; not using kill-region because we don't want to include previous kill
(kill-new (buffer-string))
(delete-region (point-min) (point-max)))
(progn (if (use-region-p)
(kill-region (region-beginning) (region-end) t)
(progn
(if (current-line-empty-p)
(delete-blank-lines)
(progn
(kill-region (line-beginning-position) (line-end-position))
(delete-char 1))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment