diff --git a/init/defuns/commands.el b/init/defuns/commands.el index 68aeffca3..c9901d01e 100644 --- a/init/defuns/commands.el +++ b/init/defuns/commands.el @@ -173,12 +173,12 @@ (my:tmux-paste command) (my:tmux-run command))) -(evil-define-operator my:ex:scratch-buffer (beg end type &optional bang) +(evil-define-operator my:ex:scratch-buffer (beg end &optional bang) :motion nil :move-point nil :type line :repeat nil - (interactive "") + (interactive "") (let ((text nil) (mode major-mode) (text-empty-p nil)) @@ -193,6 +193,23 @@ (if text (insert text)) (funcall mode))))) +(evil-define-operator my:ex:retab (beg end) + :motion nil + :move-point nil + :type line + :repeat nil + "Akin to vim's :retab, this changes all tabs-to-spaces or +spaces-to-tabs, depending on `indent-tab-mode'. Untested." + (interactive "") + (let ((b beg) + (e end)) + (unless (and b e) + (setq b (point-min)) + (setq e (point-max))) + (if indent-tabs-mode + (tabify b e) + (untabify b e)))) + (evil-define-command my:ex:byte-compile-all (&optional bang) :repeat nil (interactive "") (byte-recompile-file (expand-file-name "init.el" *dir) bang 0) diff --git a/init/my-keymaps.el b/init/my-keymaps.el index ff5a6ba13..c5b11419b 100644 --- a/init/my-keymaps.el +++ b/init/my-keymaps.el @@ -203,7 +203,7 @@ (evil-ex-define-cmd "snip[pets]" 'my:ex:snippets) (evil-ex-define-cmd "mru" 'my:ex:mru) -(evil-ex-define-cmd "retab" 'untabify) ; TODO: Implement proper retab defun +(evil-ex-define-cmd "retab" 'my:ex:retab) (evil-ex-define-cmd "ag" 'my:ex:ag-search) (evil-ex-define-cmd "agr" 'my:ex:ag-regex-search) (evil-ex-define-cmd "x" 'my:ex:scratch-buffer)