summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2018-12-11 17:03:46 -0500
committerAmin Bandali <bandali@gnu.org>2018-12-11 17:03:46 -0500
commit12f3e4b8d79650fed11279051e0ec951fc500c02 (patch)
tree2755a2de37349a17a19f3fb36b6b14d94bd782c7
parent7a5c25692787fdc908858386fcb84ae91364e415 (diff)
downloadconfigs-12f3e4b8d79650fed11279051e0ec951fc500c02.tar.gz
configs-12f3e4b8d79650fed11279051e0ec951fc500c02.tar.xz
configs-12f3e4b8d79650fed11279051e0ec951fc500c02.zip
[emacs] assimilate and add multi-term
-rw-r--r--.gitmodules3
-rw-r--r--init.org39
m---------lib/multi-term0
3 files changed, 41 insertions, 1 deletions
diff --git a/.gitmodules b/.gitmodules
index b752b3c..c40f84d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -206,6 +206,9 @@
# think the submodule is dirty. so, let's ignore the untracked
# files of this submodule
ignore = untracked
+[submodule "multi-term"]
+ path = lib/multi-term
+ url = git@github.com:emacsorphanage/multi-term.git
[submodule "mwim"]
path = lib/mwim
url = git@github.com:alezost/mwim.el.git
diff --git a/init.org b/init.org
index 44f31dc..1c69169 100644
--- a/init.org
+++ b/init.org
@@ -728,6 +728,7 @@ customizing it.
;; custom mode state mappings
(dolist (mspair '((ebdb-mode . emacs)
+ (term-mode . emacs)
(helpful-mode . motion)
(view-mode . motion)))
(evil-set-initial-state (car mspair) (cdr mspair)))
@@ -797,6 +798,8 @@ customizing it.
"a" '(:ignore t :wk "apps")
"a i" 'ielm
+ "a s" '(:ignore t :wk "shells/terms")
+
"b" '(:ignore t :wk "buffers")
"b k" 'kill-this-buffer
"b s" 'save-buffer
@@ -1840,7 +1843,7 @@ Emacs package that displays available keybindings in popup
#+begin_src emacs-lisp
(use-package shell-toggle
:after eshell
- :general (amin--leader-keys "a s" 'amin/shell-toggle)
+ :general (amin--leader-keys "a s e" 'amin/shell-toggle)
:bind ("C-c e" . amin/shell-toggle)
:config
(defun amin/shell-toggle (make-cd)
@@ -2111,6 +2114,40 @@ For when I /have to/ use GH.
:after eshell)
#+end_src
+** multi-term
+
+#+begin_src emacs-lisp
+(use-package multi-term
+ :defer 1
+ :general (amin--leader-keys
+ "a s m" 'multi-term
+ "a s p" 'multi-term-dedicated-toggle)
+ :bind ("C-c C-j" . term-line-mode)
+ :config
+ (setq multi-term-program "/bin/screen"
+ ;; TODO: add separate bindings for connecting to existing
+ ;; session vs. always creating a new one
+ multi-term-dedicated-select-after-open-p t
+ multi-term-dedicated-window-height 20
+ multi-term-dedicated-max-window-height 30
+ term-bind-key-alist
+ '(("C-c C-c" . term-interrupt-subjob)
+ ("C-c C-e" . term-send-esc)
+ ("C-k" . kill-line)
+ ("C-y" . term-paste)
+ ("M-f" . term-send-forward-word)
+ ("M-b" . term-send-backward-word)
+ ("M-p" . term-send-up)
+ ("M-n" . term-send-down)
+ ("<C-backspace>" . term-send-backward-kill-word)
+ ("<M-DEL>" . term-send-backward-kill-word)
+ ("M-d" . term-send-delete-word)
+ ("M-," . term-send-raw)
+ ("M-." . comint-dynamic-complete))
+ term-unbind-key-alist
+ '("C-z" "C-x" "C-c" "C-h" "C-y" "<ESC>")))
+#+end_src
+
* Email
#+begin_src emacs-lisp
diff --git a/lib/multi-term b/lib/multi-term
new file mode 160000
+Subproject f954e4e18b0a035151d34852387e724d87a3316