Emacs: Copy Current Line If No Selection 🚀
Copy Current Line If No Selection
put this in your Emacs Init File:
(defun xah-copy-line-or-region () "Copy current line or selection. When called repeatedly, append copy subsequent lines. When `universal-argument' is called first, copy whole buffer (respects `narrow-to-region'). URL `http://xahlee.info/emacs/emacs/emacs_copy_cut_current_line.html' Version: 2010-05-21 2022-10-03" (interactive) (let ((inhibit-field-text-motion nil)) (if current-prefix-arg (progn (copy-region-as-kill (point-min) (point-max))) (if (region-active-p) (progn (copy-region-as-kill (region-beginning) (region-end))) (if (eq last-command this-command) (if (eobp) (progn ) (progn (kill-append "\n" nil) (kill-append (buffer-substring-no-properties (line-beginning-position) (line-end-position)) nil) (progn (end-of-line) (forward-char)))) (if (eobp) (if (eq (char-before) 10 ) (progn ) (progn (copy-region-as-kill (line-beginning-position) (line-end-position)) (end-of-line))) (progn (copy-region-as-kill (line-beginning-position) (line-end-position)) (end-of-line) (forward-char))))))))
Cut Current Line If No Selection
put this in your Emacs Init File:
(defun xah-cut-line-or-region () "Cut current line or selection. When `universal-argument' is called first, cut whole buffer (respects `narrow-to-region'). URL `http://xahlee.info/emacs/emacs/emacs_copy_cut_current_line.html' Version: 2010-05-21 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 (region-active-p) (kill-region (region-beginning) (region-end) t) (kill-region (line-beginning-position) (line-beginning-position 2))))))
You need to give them keys. 〔see Emacs Keys: Define Key〕 A great hand saver is to bind them to single keys. Like this:
(global-set-key (kbd "<f2>") 'xah-cut-line-or-region) ; cut (global-set-key (kbd "<f3>") 'xah-copy-line-or-region) ; copy (global-set-key (kbd "<f4>") 'yank) ; paste
This is now part of ergoemacs-mode and Emacs: Xah Fly Keys 📦.
2010-05-21 The code was inspired from http://www.emacswiki.org/emacs/SlickCopy. Thanks to Joseph O'Donnell for mentioning it. Apparently, this behavior is default in VisualStudio, TextMate, Sublime Text, SlickEdit.
Emacs, Copy Paste
- Emacs: Select Text (mark and region)
- Emacs: Copy Paste, kill-ring
- Emacs Init: Standard Copy Cut Paste Keys
- Emacs: Copy Current Line If No Selection 🚀
- Emacs: Copy Buffer or Selection 🚀
- Emacs: Paste or Paste Previous 🚀
- Emacs: Show Copy History (kill-ring) 🚀
- Emacs: Copy to Register
- Emacs: Copy to Register 1 🚀
- Emacs: Append/Clear Register 1 🚀