[emacs/multi-term] toggle between char and line mode with C-c C-j
[~bandali/configs] / init.org
index eea005d..045845d 100644 (file)
--- a/init.org
+++ b/init.org
@@ -946,6 +946,7 @@ There's no way I could top that, so I won't attempt to.
 (use-package eshell
   :defer 1
   :commands eshell
+  :bind ("C-c a s e" . eshell)
   :config
   (eval-when-compile (defvar eshell-prompt-regexp))
   (defun amin/eshell-quit-or-delete-char (arg)
@@ -1714,53 +1715,6 @@ Emacs package that displays available keybindings in popup
    ("C-S-h p" . helpful-at-point)))
 #+end_src
 
-** [[https://github.com/knu/shell-toggle.el][shell-toggle]]
-
-#+begin_src emacs-lisp
-(use-package shell-toggle
-  :after eshell
-  :bind ("C-c a s e" . amin/shell-toggle)
-  :config
-  (defun amin/shell-toggle (make-cd)
-    "Toggle between the shell buffer and whatever buffer you are editing.
-With a prefix argument MAKE-CD also insert a \"cd DIR\" command
-into the shell, where DIR is the directory of the current buffer.
-
-When called in the shell buffer returns you to the buffer you were editing
-before calling this the first time.
-
-Options: `shell-toggle-goto-eob'"
-    (interactive "P")
-    ;; Try to decide on one of three possibilities:
-    ;; If not in shell-buffer, switch to it.
-    ;; If in shell-buffer, return to state before going to the shell-buffer
-    (if (eq (current-buffer) shell-toggle-shell-buffer)
-        (shell-toggle-buffer-return-from-shell)
-      (progn
-        (shell-toggle-buffer-goto-shell make-cd)
-        (if shell-toggle-full-screen-window-only (delete-other-windows)))))
-
-  ;; override to split horizontally instead
-  (defun shell-toggle-buffer-switch-to-other-window ()
-    "Switch to other window.
-If the current window is the only window in the current frame,
-create a new window and switch to it.
-
-\(This is less intrusive to the current window configuration than
-`switch-buffer-other-window')"
-    (let ((this-window (selected-window)))
-      (other-window 1)
-      ;; If we did not switch window then we only have one window and need to
-      ;; create a new one.
-      (if (eq this-window (selected-window))
-             (progn
-               (split-window-horizontally)
-            (other-window 1)))))
-
-  :custom
-  (shell-toggle-launch-shell 'shell-toggle-eshell))
-#+end_src
-
 ** [[https://github.com/EricCrosson/unkillable-scratch][unkillable-scratch]]
 
 Make =*scratch*= and =*Messages*= unkillable.
@@ -1976,9 +1930,12 @@ Hopefully temporary.
 #+begin_src emacs-lisp
 (use-package multi-term
   :defer 1
-  :bind (("C-c C-j"     . term-line-mode)
-         ("C-c a s m m" . multi-term)
-         ("C-c a s m p" . multi-term-dedicated-toggle))
+  :bind (("C-c a s m m" . multi-term)
+         ("C-c a s m p" . multi-term-dedicated-toggle)
+         :map term-mode-map
+         ("C-c C-j" . term-char-mode)
+         :map term-raw-map
+         ("C-c C-j" . term-line-mode))
   :config
   (setq multi-term-program "/bin/screen"
         ;; TODO: add separate bindings for connecting to existing