X-Git-Url: http://gitweb.michael.orlitzky.com/?p=emacs.d.git;a=blobdiff_plain;f=mode-hooks%2Fmulti-term-hooks.el;h=116471c776218a5dd47764d3d574c38aa11b960e;hp=9b4f9637e30189923fe9b7284b3eda26f0de53b1;hb=2a5302b0608578ae938e5815f930964fcb51da5d;hpb=fbbc9a15a09aedbff1d018cd53f7f119d3da8fc4 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))