From 2a5302b0608578ae938e5815f930964fcb51da5d Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 24 Jun 2020 21:48:35 -0400 Subject: [PATCH] mode-hooks: hack around double-emacs-nw in multi-term mode. --- mode-hooks/multi-term-hooks.el | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mode-hooks/multi-term-hooks.el b/mode-hooks/multi-term-hooks.el index 9b4f963..116471c 100644 --- a/mode-hooks/multi-term-hooks.el +++ b/mode-hooks/multi-term-hooks.el @@ -1,11 +1,16 @@ (defun mtm-hook() - ;; Pass through C-c, C-x, and M-x for emaception. - (delete "C-x" term-unbind-key-list) - (delete "C-c" term-unbind-key-list) - (delete "" term-unbind-key-list) + ;; In a multi-term, we strip out any "-nw" or "--no-window-system" + ;; flags that are present in the EDITOR and VISUAL environment + ;; variables, to avoid getting trapped inside a double-emacs-nw. + (setq editor (getenv "EDITOR")) + (setq editor (replace-regexp-in-string " -nw" "" editor)) + (setq editor (replace-regexp-in-string " --no-window-system" "" editor)) + (setenv "EDITOR" editor) - ;; We don't need the special C-c C-c any afterwards. - (delete '("C-c C-c" . term-interrupt-subjob) term-bind-key-alist) + (setq visual (getenv "VISUAL")) + (setq visual (replace-regexp-in-string " -nw" "" visual)) + (setq visual (replace-regexp-in-string " --no-window-system" "" visual)) + (setenv "VISUAL" visual) ) (add-hook 'term-mode-hook (function mtm-hook)) -- 2.44.2