From 9be3805b60d03fc6e0d45cb3decb5c6703395cf4 Mon Sep 17 00:00:00 2001 From: condy Date: Sat, 10 Jul 2021 08:58:12 +0800 Subject: [PATCH] unimpaired: paste with preserving indentation --- .../unimpaired/evil-collection-unimpaired.el | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/modes/unimpaired/evil-collection-unimpaired.el b/modes/unimpaired/evil-collection-unimpaired.el index 3d32d00..dbc9f0f 100644 --- a/modes/unimpaired/evil-collection-unimpaired.el +++ b/modes/unimpaired/evil-collection-unimpaired.el @@ -127,6 +127,26 @@ (forward-line -1)) (move-beginning-of-line nil)) +(defun evil-collection-unimpaired-paste-above () + "Paste above current line with preserving indentation." + (interactive) + (let ((indent (current-indentation)) + (column (current-column))) + (evil-insert-newline-above) + (indent-to indent) + (evil-paste-after 1) + (move-to-column column))) + +(defun evil-collection-unimpaired-paste-below () + "Paste below current line with preserving indentation." + (interactive) + (let ((indent (current-indentation)) + (column (current-column))) + (evil-insert-newline-below) + (indent-to indent) + (evil-paste-after 1) + (move-to-column column))) + (defun evil-collection-unimpaired-insert-newline-above (count) "Insert COUNT blank line(s) above current line." (interactive "p") @@ -215,6 +235,10 @@ "]Q" 'evil-collection-unimpaired-last-error "[n" 'evil-collection-unimpaired-previous-SCM-conflict-marker "]n" 'evil-collection-unimpaired-next-SCM-conflict-marker + "[p" 'evil-collection-unimpaired-paste-above + "]p" 'evil-collection-unimpaired-paste-below + "[P" 'evil-collection-unimpaired-paste-above + "]P" 'evil-collection-unimpaired-paste-below (kbd "[ SPC") 'evil-collection-unimpaired-insert-newline-above (kbd "] SPC") 'evil-collection-unimpaired-insert-newline-below) (evil-collection-define-key 'visual 'evil-collection-unimpaired-mode-map