(Emacs)~dx:->+dx/ namespace (use +dx: for variables and constants)

There was a split in namespace across my config: "+dx/" or "dx:".
"dx:" was used for older functions created near the start of this
config, while "+dx/" is used basically everywhere else and is my
preferred namespace for new functions.  Hence I resolve this conflict
in this commit.
This commit is contained in:
2021-07-28 18:58:25 +01:00
parent 0a613ae8f4
commit c8ae4683a0

View File

@@ -122,13 +122,12 @@ Setting the path variable cos it can get annoying sometimes
* Custom Functions * Custom Functions
These are custom functions I have defined for various purposes. These are custom functions I have defined for various purposes.
** New line function ** New line function
Vim bindings don't have a nice way of adding new lines before or after Vim doesn't have a nice way of adding new lines before or after the
the current line while staying in normal mode. You can use =o/O= to current line while staying in normal mode. You can use =o/O= to enter
enter insert mode at a new line, but this isn't the same as being able insert mode at a new line, but this isn't the same as being able to
to stay in normal mode while opening newlines and only adds extra stay in normal mode while opening newlines and only adds extra
keypresses if your only purpose was to open up some lines. As this is keypresses if your only purpose was to open up some lines. Enter +dx/newline
Emacs I can extend it as I wish, so I decided to define a new line
function that won't remove me from normal state.
The logic is pretty simple: The logic is pretty simple:
- Record current location as =old= - Record current location as =old=
@@ -139,7 +138,7 @@ The logic is pretty simple:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(with-eval-after-load "evil" (with-eval-after-load "evil"
(defun dx:newline (&optional BACKWARD) (defun +dx/newline (&optional BACKWARD)
(interactive) (interactive)
(save-excursion (save-excursion
(cond ((and BACKWARD (= BACKWARD 1)) (evil-open-below 1)) (cond ((and BACKWARD (= BACKWARD 1)) (evil-open-below 1))
@@ -219,8 +218,8 @@ instead just picking stuff I think is useful.
(general-def (general-def
:states '(normal motion) :states '(normal motion)
"SPC" nil "SPC" nil
"M-V" #'dx:newline "M-V" #'+dx/newline
"M-v" (proc (interactive) (dx:newline 1))) "M-v" (proc (interactive) (+dx/newline 1)))
(general-create-definer leader (general-create-definer leader
:states '(normal motion) :states '(normal motion)
@@ -346,30 +345,30 @@ Setup the evil package, with some opinionated keybindings:
Setup for multicursors in Evil mode. Don't let evil-mc setup it's own Setup for multicursors in Evil mode. Don't let evil-mc setup it's own
keymap because it uses 'gr' as its prefix, which I don't like. keymap because it uses 'gr' as its prefix, which I don't like.
Instead, bind some useful functions to my personal =dx:evil-mc-map= Instead, bind some useful functions to my personal =+dx:evil-mc-map=
which is bound to 'gz'. Define a function =dx:evil-mc-cursor-here= which is bound to 'gz'. Define a function =dx:evil-mc-cursor-here=
which pauses cursors upon placing a cursor at the current position. which pauses cursors upon placing a cursor at the current position.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package evil-mc (use-package evil-mc
:after evil :after evil
:bind (("M-p" . evil-mc-skip-and-goto-prev-cursor) :bind (("M-p" . evil-mc-skip-and-goto-prev-cursor)
:map dx:evil-mc-map :map +dx:evil-mc-map
("q" . evil-mc-undo-all-cursors) ("q" . evil-mc-undo-all-cursors)
("d" . evil-mc-make-and-goto-next-match) ("d" . evil-mc-make-and-goto-next-match)
("j" . evil-mc-make-cursor-move-next-line) ("j" . evil-mc-make-cursor-move-next-line)
("k" . evil-mc-make-cursor-move-prev-line) ("k" . evil-mc-make-cursor-move-prev-line)
("j" . evil-mc-make-cursor-move-next-line) ("j" . evil-mc-make-cursor-move-next-line)
("m" . evil-mc-make-all-cursors) ("m" . evil-mc-make-all-cursors)
("z" . dx:evil-mc-cursor-here) ("z" . +dx/evil-mc-cursor-here)
("r" . evil-mc-resume-cursors) ("r" . evil-mc-resume-cursors)
("s" . evil-mc-pause-cursors)) ("s" . evil-mc-pause-cursors))
:init :init
(setq evil-mc-key-map nil) (setq evil-mc-key-map nil)
(define-prefix-command 'dx:evil-mc-map) (define-prefix-command '+dx:evil-mc-map)
(bind-key "gz" dx:evil-mc-map evil-normal-state-map) (bind-key "gz" +dx:evil-mc-map evil-normal-state-map)
:config :config
(global-evil-mc-mode +1) (global-evil-mc-mode +1)
(defun dx:evil-mc-cursor-here () (defun +dx/evil-mc-cursor-here ()
(interactive) (interactive)
(evil-mc-make-cursor-here) (evil-mc-make-cursor-here)
(evil-mc-pause-cursors))) (evil-mc-pause-cursors)))
@@ -1049,45 +1048,6 @@ Counsel projectile provides the ivy interface to projectile commands, which is r
:config :config
(counsel-projectile-mode +1)) (counsel-projectile-mode +1))
#+end_src #+end_src
** Hydra
Use hydras for stuff that I use often, currently buffer manipulation
#+begin_src emacs-lisp
(use-package hydra
:after evil
:init
(defun dx:kill-defun ()
"Mark defun then kill it."
(interactive)
(mark-defun)
(delete-active-region t))
(defun dx:paste-section ()
"Paste the current kill-region content above section."
(interactive)
(open-line 1)
(yank))
:config
(defhydra hydra-buffer (evil-normal-state-map "SPC b")
"buffer-hydra"
("l" next-buffer)
("h" previous-buffer)
("c" kill-this-buffer))
(defhydra hydra-goto-chg (evil-normal-state-map "g;")
"goto-chg"
(";" goto-last-change "goto-last-change")
("," goto-last-change-reverse "goto-last-change-reverse"))
(defhydra hydra-code-manipulator (global-map "C-x c")
"code-manip"
("j" evil-forward-section-begin)
("k" evil-backward-section-begin)
("m" mark-defun)
("d" dx:kill-defun)
("p" dx:paste-section)
("TAB" evil-toggle-fold)))
#+end_src
** Avy ** Avy
Setup avy with leader. As I use =avy-goto-char-timer= a lot, use the Setup avy with leader. As I use =avy-goto-char-timer= a lot, use the
=C-s= bind which replaces isearch. Switch isearch to M-s in case I =C-s= bind which replaces isearch. Switch isearch to M-s in case I
@@ -1920,7 +1880,7 @@ By default, turn off tabs and set the tab width to two.
However, if necessary later, define a function that may activate tabs locally. However, if necessary later, define a function that may activate tabs locally.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun dx:activate-tabs () (defun +dx/activate-tabs ()
(interactive) (interactive)
(setq-local indent-tabs-mode t)) (setq-local indent-tabs-mode t))
#+end_src #+end_src