[emacs] add more bindings, from the awesome crux and mwim
authorAmin Bandali <amin@aminb.org>
Sun, 22 Jul 2018 21:39:52 +0000 (17:39 -0400)
committerAmin Bandali <amin@aminb.org>
Sun, 22 Jul 2018 21:39:52 +0000 (17:39 -0400)
.gitmodules
init.org
lib/crux [new submodule]
lib/mwim [new submodule]

index 776beaa..3916e2c 100644 (file)
@@ -22,6 +22,9 @@
 [submodule "company"]
        path = lib/company
        url = git@github.com:company-mode/company-mode.git
+[submodule "crux"]
+       path = lib/crux
+       url = git@github.com:bbatsov/crux.git
 [submodule "dante"]
        path = lib/dante
        url = git@github.com:jyp/dante.git
 [submodule "memoize"]
        path = lib/memoize
        url = git@github.com:skeeto/emacs-memoize.git
+[submodule "mwim"]
+       path = lib/mwim
+       url = git@github.com:alezost/mwim.el.git
 [submodule "no-littering"]
        path = lib/no-littering
        url = git@github.com:emacscollective/no-littering.git
index fe307b6..a345921 100644 (file)
--- a/init.org
+++ b/init.org
@@ -627,8 +627,6 @@ Roll your own modal mode
    ("n" next-line)
    ("p" previous-line)
    ("f" forward-char)
-   ("a" move-beginning-of-line)
-   ("e" move-end-of-line)
    ("SPC" (("b" (("b" ibuffer-list-buffers)
                  ("k" kill-this-buffer)
                  ("o" other-window)
@@ -642,10 +640,8 @@ Roll your own modal mode
                  ("v" describe-variable)))
            ("q" (("q" save-buffers-kill-terminal)))))
    ("d" (("w" kill-word)
-         ("d" kill-whole-line)
          ("b" backward-kill-word)))
-   ("c" (("w" kill-word :exit t)
-         ("c" kill-whole-line :exit t))))
+   ("c w" kill-word :exit t))
 
   (ryo-modal-keys
    ;; First argyment to ryo-modal-keys may be a list of keywords.
@@ -1137,6 +1133,36 @@ Emacs package that displays available keybindings in popup
 (load-theme 'eink t)
 #+end_src
 
+** [[https://github.com/bbatsov/crux][crux]]
+
+#+begin_src emacs-lisp
+(use-package crux
+  :bind (("C-c d"    . crux-duplicate-current-line-or-region)
+         ("C-c M-d"  . crux-duplicate-and-comment-current-line-or-region))
+  :ryo
+  ("o" crux-smart-open-line :exit t)
+  ("O" crux-smart-open-line-above :exit t)
+  ("SPC b K" crux-kill-other-buffers)
+  ("d d" crux-kill-whole-line)
+  ("c c" crux-kill-whole-line :then '(crux-smart-open-line-above) :exit t)
+  ("SPC f" (("c" crux-copy-file-preserve-attributes)
+            ("D" crux-delete-file-and-buffer)
+            ("R" crux-rename-file-and-buffer))))
+#+end_src
+
+** [[https://github.com/alezost/mwim.el][mwim]]
+
+#+begin_src emacs-lisp
+(use-package mwim
+  :bind (("C-a"    . mwim-beginning-of-code-or-line)
+         ("C-e"    . mwim-end-of-code-or-line)
+         ("<home>" . mwim-beginning-of-line-or-code)
+         ("<end>"  . mwim-end-of-line-or-code))
+  :ryo
+  ("a" mwim-beginning-of-code-or-line)
+  ("e" mwim-end-of-code-or-line))
+#+end_src
+
 * Email
 ** [[https://notmuchmail.org][notmuch]]
 
diff --git a/lib/crux b/lib/crux
new file mode 160000 (submodule)
index 0000000..c79985f
--- /dev/null
+++ b/lib/crux
@@ -0,0 +1 @@
+Subproject commit c79985f69b7cd96edb505199bd751f71ce6d4e58
diff --git a/lib/mwim b/lib/mwim
new file mode 160000 (submodule)
index 0000000..4622072
--- /dev/null
+++ b/lib/mwim
@@ -0,0 +1 @@
+Subproject commit 462207227b98a6a4356d51419f5ad5ba9356e5cf