From: Michael Orlitzky Date: Thu, 25 Jun 2020 01:48:35 +0000 (-0400) Subject: mode-hooks: hack around double-emacs-nw in multi-term mode. X-Git-Url: http://gitweb.michael.orlitzky.com/?p=emacs.d.git;a=commitdiff_plain;h=2a5302b0608578ae938e5815f930964fcb51da5d mode-hooks: hack around double-emacs-nw in multi-term mode. --- 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))