[emacs] add crux-top-join-line bindings (à la evil-mode's J)
[~bandali/configs] / init.org
index 56e7752..bc73a1d 100644 (file)
--- a/init.org
+++ b/init.org
@@ -766,9 +766,16 @@ There's no way I could top that, so I won't attempt to.
         (eshell-life-is-too-much)
       (delete-char arg)))
 
+  (defun amin/eshell-clear ()
+    (interactive)
+    (let ((inhibit-read-only t))
+      (erase-buffer))
+    (eshell-send-input))
+
   (defun amin|eshell-setup ()
     (bind-keys :map eshell-mode-map
-               ("C-d" . amin/eshell-quit-or-delete-char)))
+               ("C-d" . amin/eshell-quit-or-delete-char)
+               ("C-l" . amin/eshell-clear)))
 
   :hook (eshell-mode . amin|eshell-setup))
 #+end_src
@@ -1143,7 +1150,9 @@ Emacs package that displays available keybindings in popup
          ("C-c b K" . crux-kill-other-buffers)
          ("C-c f c" . crux-copy-file-preserve-attributes)
          ("C-c f D" . crux-delete-file-and-buffer)
-         ("C-c f R" . crux-rename-file-and-buffer)))
+         ("C-c f R" . crux-rename-file-and-buffer)
+         ("C-S-j"   . crux-top-join-line)
+         ("C-c j"   . crux-top-join-line)))
 #+end_src
 
 ** [[https://github.com/alezost/mwim.el][mwim]]
@@ -1189,6 +1198,7 @@ Emacs package that displays available keybindings in popup
         '(("*Help*" :align right :select t :size 0.5)
           ("\\`\\*helm.*?\\*\\'" :regexp t :align t)
           ((compilation-mode "\\`\\*magit-diff: .*?\\'") :regexp t :noselect t)
+          ("*magit-dispatch-popup*" :align bottom)
           ((inferior-scheme-mode "*shell*" "*eshell*") :popup t))
         shackle-default-rule '(:select t)
         shackle-default-size 0.4
@@ -1208,6 +1218,17 @@ Emacs package that displays available keybindings in popup
    ("C-h C"   . helpful-command)))
 #+end_src
 
+** [[https://github.com/kyagi/shell-pop-el][shell-pop]]
+
+#+begin_src emacs-lisp
+(use-package shell-pop
+  :config
+  (add-to-list 'shackle-rules '("\\*eshell\\*" :regexp t :same t))
+  :custom
+  (shell-pop-universal-key "C-c e")
+  (shell-pop-shell-type '("eshell" "*eshell*" (lambda nil (eshell)))))
+#+end_src
+
 * Email
 ** [[https://notmuchmail.org][notmuch]]