From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: 25.0.91; eshell-mode-map declaration Resent-From: Manuel Uberti - Boccaperta Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Feb 2016 15:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 22792@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.145632638512381 (code B ref -1); Wed, 24 Feb 2016 15:07:01 +0000 Received: (at submit) by debbugs.gnu.org; 24 Feb 2016 15:06:25 +0000 Received: from localhost ([127.0.0.1]:43975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYb1E-0003Db-3e for submit@debbugs.gnu.org; Wed, 24 Feb 2016 10:06:25 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55835) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYb19-0003DJ-IB for submit@debbugs.gnu.org; Wed, 24 Feb 2016 10:06:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYb0w-0008LI-Sb for submit@debbugs.gnu.org; Wed, 24 Feb 2016 10:06:14 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:40770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYb0w-0008LD-Ov for submit@debbugs.gnu.org; Wed, 24 Feb 2016 10:06:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYb0t-0001CH-O0 for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 10:06:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYb0p-0008J8-Gw for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 10:06:03 -0500 Received: from smtpcmd01218.aruba.it ([62.149.158.218]:56546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYb0o-0008Dr-UC for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 10:05:59 -0500 Received: from [192.168.1.12] ([151.49.250.166]) by smtpcmd01.ad.aruba.it with bizsmtp id NF5P1s01u3c9WiX01F5PlV; Wed, 24 Feb 2016 16:05:24 +0100 From: Manuel Uberti - Boccaperta Message-ID: <56CDC6D3.1050106@boccaperta.com> Date: Wed, 24 Feb 2016 16:05:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) As of now, `eshell-mode-map' in esh-mode.el is declared as: (defvar eshell-mode-map nil) As indicated here: https://github.com/manuel-uberti/.emacs.d/commit/d44051ef417aee2086ba05e5a514e0ce6c401ca7#commitcomment-16298777, this makes it impossibile to define a keybinding for eshell-mode-map before eshell is loaded. A solution could be: (defvar eshell-mode-map (make-sparse-keymap)) Kind regards, Manuel Uberti In GNU Emacs 25.0.91.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5) of 2016-02-24 built on snoop Repository revision: cab3f0a222412b1fd592b1c2f1e305fa245f9279 Windowing system distributor 'The X.Org Foundation', version 11.0.11604000 System Description: Debian GNU/Linux 8.3 (jessie) Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LC_MONETARY: en_GB.utf8 value of $LC_NUMERIC: en_GB.utf8 value of $LC_TIME: en_GB.utf8 value of $LANG: en_GB.utf8 locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: magit-wip-before-change-mode: t magit-wip-after-apply-mode: t magit-wip-after-save-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t async-bytecomp-package-mode: t company-quickhelp-mode: t company-statistics-mode: t global-company-mode: t company-mode: t yas-global-mode: t yas-minor-mode: t imagex-auto-adjust-mode: t imagex-global-sticky-mode: t imagex-sticky-mode: t pdf-occur-global-minor-mode: t recentf-mode: t auto-insert-mode: t highlight-symbol-nav-mode: t highlight-symbol-mode: t highlight-numbers-mode: t rainbow-delimiters-mode: t whitespace-cleanup-mode: t outline-minor-mode: t goto-address-prog-mode: t bug-reference-prog-mode: t projectile-global-mode: t projectile-mode: t tdd-mode: t shell-dirtrack-mode: t TeX-PDF-mode: t TeX-source-correlate-mode: t elisp-slime-nav-mode: t winner-mode: t global-hungry-delete-mode: t hungry-delete-mode: t typo-global-mode: t global-auto-revert-mode: t super-save-mode: t save-place-mode: t global-aggressive-indent-mode: t aggressive-indent-mode: t global-undo-tree-mode: t undo-tree-mode: t ivy-mode: t delete-selection-mode: t eldoc-in-minibuffer-mode: t beacon-mode: t whitespace-mode: t global-hi-lock-mode: t hi-lock-mode: t global-diff-hl-mode: t diff-hl-mode: t diff-auto-refine-mode: t show-paren-mode: t which-key-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t smartparens-strict-mode: t smartparens-mode: t global-page-break-lines-mode: t page-break-lines-mode: t override-global-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-mode: t prettify-symbols-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Tramp: Found remote shell prompt on ‘localhost’ Tramp: Opening connection for root@localhost using sudo...done Copying /sudo:root@localhost:/usr/local/share/emacs/25.0.91/lisp/eshell/esh-mode.el.gz to /tmp/tramp.78547fW.gz...done uncompressing esh-mode.el.gz...done Tramp: Checking ‘vc-registered’ for /sudo:root@localhost:/usr/local/share/emacs/25.0.91/lisp/eshell/esh-mode.el.gz...done uncompressing esh-mode.el.gz...done Tramp: Checking ‘vc-registered’ for /sudo:root@localhost:/usr/local/share/emacs/25.0.91/lisp/eshell/esh-mode.el.gz...done uncompressing esh-mode.el.gz...done Load-path shadows: /home/manuel/.emacs.d/elpa/org-20160222/org-mobile hides /usr/local/share/emacs/25.0.91/lisp/org/org-mobile /home/manuel/.emacs.d/elpa/org-20160222/ob-calc hides /usr/local/share/emacs/25.0.91/lisp/org/ob-calc /home/manuel/.emacs.d/elpa/org-20160222/org-table hides /usr/local/share/emacs/25.0.91/lisp/org/org-table /home/manuel/.emacs.d/elpa/org-20160222/ob-java hides /usr/local/share/emacs/25.0.91/lisp/org/ob-java /home/manuel/.emacs.d/elpa/org-20160222/org-crypt hides /usr/local/share/emacs/25.0.91/lisp/org/org-crypt /home/manuel/.emacs.d/elpa/org-20160222/org-archive hides /usr/local/share/emacs/25.0.91/lisp/org/org-archive /home/manuel/.emacs.d/elpa/org-20160222/org-macro hides /usr/local/share/emacs/25.0.91/lisp/org/org-macro /home/manuel/.emacs.d/elpa/org-20160222/ob-lisp hides /usr/local/share/emacs/25.0.91/lisp/org/ob-lisp /home/manuel/.emacs.d/elpa/org-20160222/org-pcomplete hides /usr/local/share/emacs/25.0.91/lisp/org/org-pcomplete /home/manuel/.emacs.d/elpa/org-20160222/ob-comint hides /usr/local/share/emacs/25.0.91/lisp/org/ob-comint /home/manuel/.emacs.d/elpa/org-20160222/org-mhe hides /usr/local/share/emacs/25.0.91/lisp/org/org-mhe /home/manuel/.emacs.d/elpa/org-20160222/ob-maxima hides /usr/local/share/emacs/25.0.91/lisp/org/ob-maxima /home/manuel/.emacs.d/elpa/org-20160222/org-irc hides /usr/local/share/emacs/25.0.91/lisp/org/org-irc /home/manuel/.emacs.d/elpa/org-20160222/ox-md hides /usr/local/share/emacs/25.0.91/lisp/org/ox-md /home/manuel/.emacs.d/elpa/org-20160222/ob-eval hides /usr/local/share/emacs/25.0.91/lisp/org/ob-eval /home/manuel/.emacs.d/elpa/org-20160222/ob-lilypond hides /usr/local/share/emacs/25.0.91/lisp/org/ob-lilypond /home/manuel/.emacs.d/elpa/org-20160222/ob-matlab hides /usr/local/share/emacs/25.0.91/lisp/org/ob-matlab /home/manuel/.emacs.d/elpa/org-20160222/org-inlinetask hides /usr/local/share/emacs/25.0.91/lisp/org/org-inlinetask /home/manuel/.emacs.d/elpa/org-20160222/ob-asymptote hides /usr/local/share/emacs/25.0.91/lisp/org/ob-asymptote /home/manuel/.emacs.d/elpa/org-20160222/org-habit hides /usr/local/share/emacs/25.0.91/lisp/org/org-habit /home/manuel/.emacs.d/elpa/org-20160222/org-agenda hides /usr/local/share/emacs/25.0.91/lisp/org/org-agenda /home/manuel/.emacs.d/elpa/org-20160222/ox-beamer hides /usr/local/share/emacs/25.0.91/lisp/org/ox-beamer /home/manuel/.emacs.d/elpa/org-20160222/ob-latex hides /usr/local/share/emacs/25.0.91/lisp/org/ob-latex /home/manuel/.emacs.d/elpa/org-20160222/ox-texinfo hides /usr/local/share/emacs/25.0.91/lisp/org/ox-texinfo /home/manuel/.emacs.d/elpa/org-20160222/org-mouse hides /usr/local/share/emacs/25.0.91/lisp/org/org-mouse /home/manuel/.emacs.d/elpa/org-20160222/ob-lob hides /usr/local/share/emacs/25.0.91/lisp/org/ob-lob /home/manuel/.emacs.d/elpa/org-20160222/ox hides /usr/local/share/emacs/25.0.91/lisp/org/ox /home/manuel/.emacs.d/elpa/org-20160222/ob-keys hides /usr/local/share/emacs/25.0.91/lisp/org/ob-keys /home/manuel/.emacs.d/elpa/org-20160222/ob-gnuplot hides /usr/local/share/emacs/25.0.91/lisp/org/ob-gnuplot /home/manuel/.emacs.d/elpa/org-20160222/ob-makefile hides /usr/local/share/emacs/25.0.91/lisp/org/ob-makefile /home/manuel/.emacs.d/elpa/org-20160222/ob-table hides /usr/local/share/emacs/25.0.91/lisp/org/ob-table /home/manuel/.emacs.d/elpa/org-20160222/ob-io hides /usr/local/share/emacs/25.0.91/lisp/org/ob-io /home/manuel/.emacs.d/elpa/org-20160222/org-bibtex hides /usr/local/share/emacs/25.0.91/lisp/org/org-bibtex /home/manuel/.emacs.d/elpa/org-20160222/ob-fortran hides /usr/local/share/emacs/25.0.91/lisp/org/ob-fortran /home/manuel/.emacs.d/elpa/org-20160222/org-entities hides /usr/local/share/emacs/25.0.91/lisp/org/org-entities /home/manuel/.emacs.d/elpa/org-20160222/ob-shen hides /usr/local/share/emacs/25.0.91/lisp/org/ob-shen /home/manuel/.emacs.d/elpa/org-20160222/org-feed hides /usr/local/share/emacs/25.0.91/lisp/org/org-feed /home/manuel/.emacs.d/elpa/org-20160222/ob-R hides /usr/local/share/emacs/25.0.91/lisp/org/ob-R /home/manuel/.emacs.d/elpa/org-20160222/org-colview hides /usr/local/share/emacs/25.0.91/lisp/org/org-colview /home/manuel/.emacs.d/elpa/org-20160222/ob hides /usr/local/share/emacs/25.0.91/lisp/org/ob /home/manuel/.emacs.d/elpa/org-20160222/org-plot hides /usr/local/share/emacs/25.0.91/lisp/org/org-plot /home/manuel/.emacs.d/elpa/org-20160222/ob-haskell hides /usr/local/share/emacs/25.0.91/lisp/org/ob-haskell /home/manuel/.emacs.d/elpa/org-20160222/ob-mscgen hides /usr/local/share/emacs/25.0.91/lisp/org/ob-mscgen /home/manuel/.emacs.d/elpa/org-20160222/ob-octave hides /usr/local/share/emacs/25.0.91/lisp/org/ob-octave /home/manuel/.emacs.d/elpa/org-20160222/org-loaddefs hides /usr/local/share/emacs/25.0.91/lisp/org/org-loaddefs /home/manuel/.emacs.d/elpa/org-20160222/ob-emacs-lisp hides /usr/local/share/emacs/25.0.91/lisp/org/ob-emacs-lisp /home/manuel/.emacs.d/elpa/org-20160222/ox-icalendar hides /usr/local/share/emacs/25.0.91/lisp/org/ox-icalendar /home/manuel/.emacs.d/elpa/org-20160222/org-footnote hides /usr/local/share/emacs/25.0.91/lisp/org/org-footnote /home/manuel/.emacs.d/elpa/org-20160222/ob-ocaml hides /usr/local/share/emacs/25.0.91/lisp/org/ob-ocaml /home/manuel/.emacs.d/elpa/org-20160222/org-compat hides /usr/local/share/emacs/25.0.91/lisp/org/org-compat /home/manuel/.emacs.d/elpa/org-20160222/ob-dot hides /usr/local/share/emacs/25.0.91/lisp/org/ob-dot /home/manuel/.emacs.d/elpa/org-20160222/org-id hides /usr/local/share/emacs/25.0.91/lisp/org/org-id /home/manuel/.emacs.d/elpa/org-20160222/org-macs hides /usr/local/share/emacs/25.0.91/lisp/org/org-macs /home/manuel/.emacs.d/elpa/org-20160222/ob-awk hides /usr/local/share/emacs/25.0.91/lisp/org/ob-awk /home/manuel/.emacs.d/elpa/org-20160222/ob-picolisp hides /usr/local/share/emacs/25.0.91/lisp/org/ob-picolisp /home/manuel/.emacs.d/elpa/org-20160222/org-indent hides /usr/local/share/emacs/25.0.91/lisp/org/org-indent /home/manuel/.emacs.d/elpa/org-20160222/ox-publish hides /usr/local/share/emacs/25.0.91/lisp/org/ox-publish /home/manuel/.emacs.d/elpa/org-20160222/org-protocol hides /usr/local/share/emacs/25.0.91/lisp/org/org-protocol /home/manuel/.emacs.d/elpa/org-20160222/ob-exp hides /usr/local/share/emacs/25.0.91/lisp/org/ob-exp /home/manuel/.emacs.d/elpa/org-20160222/ox-ascii hides /usr/local/share/emacs/25.0.91/lisp/org/ox-ascii /home/manuel/.emacs.d/elpa/org-20160222/ob-perl hides /usr/local/share/emacs/25.0.91/lisp/org/ob-perl /home/manuel/.emacs.d/elpa/org-20160222/ob-plantuml hides /usr/local/share/emacs/25.0.91/lisp/org/ob-plantuml /home/manuel/.emacs.d/elpa/org-20160222/ox-html hides /usr/local/share/emacs/25.0.91/lisp/org/ox-html /home/manuel/.emacs.d/elpa/org-20160222/org-timer hides /usr/local/share/emacs/25.0.91/lisp/org/org-timer /home/manuel/.emacs.d/elpa/org-20160222/org-bbdb hides /usr/local/share/emacs/25.0.91/lisp/org/org-bbdb /home/manuel/.emacs.d/elpa/org-20160222/ob-clojure hides /usr/local/share/emacs/25.0.91/lisp/org/ob-clojure /home/manuel/.emacs.d/elpa/org-20160222/org-faces hides /usr/local/share/emacs/25.0.91/lisp/org/org-faces /home/manuel/.emacs.d/elpa/org-20160222/org-list hides /usr/local/share/emacs/25.0.91/lisp/org/org-list /home/manuel/.emacs.d/elpa/org-20160222/org-src hides /usr/local/share/emacs/25.0.91/lisp/org/org-src /home/manuel/.emacs.d/elpa/org-20160222/ob-scheme hides /usr/local/share/emacs/25.0.91/lisp/org/ob-scheme /home/manuel/.emacs.d/elpa/org-20160222/org-gnus hides /usr/local/share/emacs/25.0.91/lisp/org/org-gnus /home/manuel/.emacs.d/elpa/org-20160222/org-capture hides /usr/local/share/emacs/25.0.91/lisp/org/org-capture /home/manuel/.emacs.d/elpa/org-20160222/ob-css hides /usr/local/share/emacs/25.0.91/lisp/org/ob-css /home/manuel/.emacs.d/elpa/org-20160222/ob-screen hides /usr/local/share/emacs/25.0.91/lisp/org/ob-screen /home/manuel/.emacs.d/elpa/org-20160222/org-info hides /usr/local/share/emacs/25.0.91/lisp/org/org-info /home/manuel/.emacs.d/elpa/org-20160222/org-ctags hides /usr/local/share/emacs/25.0.91/lisp/org/org-ctags /home/manuel/.emacs.d/elpa/org-20160222/org-docview hides /usr/local/share/emacs/25.0.91/lisp/org/org-docview /home/manuel/.emacs.d/elpa/org-20160222/ob-sqlite hides /usr/local/share/emacs/25.0.91/lisp/org/ob-sqlite /home/manuel/.emacs.d/elpa/org-20160222/org-datetree hides /usr/local/share/emacs/25.0.91/lisp/org/org-datetree /home/manuel/.emacs.d/elpa/org-20160222/ob-ref hides /usr/local/share/emacs/25.0.91/lisp/org/ob-ref /home/manuel/.emacs.d/elpa/org-20160222/org-rmail hides /usr/local/share/emacs/25.0.91/lisp/org/org-rmail /home/manuel/.emacs.d/elpa/org-20160222/org-eshell hides /usr/local/share/emacs/25.0.91/lisp/org/org-eshell /home/manuel/.emacs.d/elpa/org-20160222/ox-man hides /usr/local/share/emacs/25.0.91/lisp/org/ox-man /home/manuel/.emacs.d/elpa/org-20160222/ob-core hides /usr/local/share/emacs/25.0.91/lisp/org/ob-core /home/manuel/.emacs.d/elpa/org-20160222/ob-ruby hides /usr/local/share/emacs/25.0.91/lisp/org/ob-ruby /home/manuel/.emacs.d/elpa/org-20160222/org-attach hides /usr/local/share/emacs/25.0.91/lisp/org/org-attach /home/manuel/.emacs.d/elpa/org-20160222/ob-sass hides /usr/local/share/emacs/25.0.91/lisp/org/ob-sass /home/manuel/.emacs.d/elpa/org-20160222/org-w3m hides /usr/local/share/emacs/25.0.91/lisp/org/org-w3m /home/manuel/.emacs.d/elpa/org-20160222/ob-org hides /usr/local/share/emacs/25.0.91/lisp/org/ob-org /home/manuel/.emacs.d/elpa/org-20160222/ox-org hides /usr/local/share/emacs/25.0.91/lisp/org/ox-org /home/manuel/.emacs.d/elpa/org-20160222/ob-ledger hides /usr/local/share/emacs/25.0.91/lisp/org/ob-ledger /home/manuel/.emacs.d/elpa/org-20160222/org-version hides /usr/local/share/emacs/25.0.91/lisp/org/org-version /home/manuel/.emacs.d/elpa/org-20160222/ob-scala hides /usr/local/share/emacs/25.0.91/lisp/org/ob-scala /home/manuel/.emacs.d/elpa/org-20160222/ob-python hides /usr/local/share/emacs/25.0.91/lisp/org/ob-python /home/manuel/.emacs.d/elpa/org-20160222/org hides /usr/local/share/emacs/25.0.91/lisp/org/org /home/manuel/.emacs.d/elpa/org-20160222/ob-ditaa hides /usr/local/share/emacs/25.0.91/lisp/org/ob-ditaa /home/manuel/.emacs.d/elpa/org-20160222/ox-odt hides /usr/local/share/emacs/25.0.91/lisp/org/ox-odt /home/manuel/.emacs.d/elpa/org-20160222/ob-sql hides /usr/local/share/emacs/25.0.91/lisp/org/ob-sql /home/manuel/.emacs.d/elpa/org-20160222/ox-latex hides /usr/local/share/emacs/25.0.91/lisp/org/ox-latex /home/manuel/.emacs.d/elpa/org-20160222/ob-C hides /usr/local/share/emacs/25.0.91/lisp/org/ob-C /home/manuel/.emacs.d/elpa/org-20160222/org-element hides /usr/local/share/emacs/25.0.91/lisp/org/org-element /home/manuel/.emacs.d/elpa/org-20160222/org-clock hides /usr/local/share/emacs/25.0.91/lisp/org/org-clock /home/manuel/.emacs.d/elpa/org-20160222/org-install hides /usr/local/share/emacs/25.0.91/lisp/org/org-install /home/manuel/.emacs.d/elpa/org-20160222/ob-tangle hides /usr/local/share/emacs/25.0.91/lisp/org/ob-tangle /home/manuel/.emacs.d/elpa/org-20160222/ob-js hides /usr/local/share/emacs/25.0.91/lisp/org/ob-js Features: (shadow sort mail-extr emacsbug sendmail counsel swiper eieio-opt speedbar sb-image ezimage dframe ace-window avy view cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs diary-lib diary-loaddefs cal-iso org-agenda org-clock cal-move parse-time descr-text vc-git linum org-indent adaptive-wrap org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view org-bibtex bibtex org-bbdb org-w3m colir color company-web-html em-unix em-term term ehelp em-script em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups pcomplete-extension pcmpl-unix pcmpl-gnu eshell esh-module esh-mode esh-util mu-vers-control magit-rockstar magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit magit-apply magit-wip magit-log magit-diff smerge-mode git-commit log-edit message rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-process with-editor server magit-popup async-bytecomp async magit-mode magit-git magit-section magit-utils mu-completion company-shell company-restclient restclient url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap know-your-http-well http-status-codes http-relations http-methods http-headers sly-company company-auctex company-web web-completion-data company-math math-symbol-lists company-quickhelp pos-tip company-statistics company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb company yasnippet mu-files image+ image-file pdf-occur tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet find-dired dired pdf-isearch let-alist pdf-misc tramp-cache tramp-sh recentf tree-widget mu-dired mu-org ox-mediawiki s org-pdfview pdf-tools cus-edit cus-start cus-load wid-edit pdf-view bookmark jka-compr pdf-cache pdf-info tq pdf-util image-mode org-bullets ox-reveal ox-pandoc ht ox-org ox-latex ox-icalendar ox-html ox-ascii ox-publish ox org-element avl-tree org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs autoinsert disp-table highlight-symbol highlight-numbers parent-mode rainbow-delimiters whitespace-cleanup-mode noutline outline goto-addr bug-reference flycheck-cask mu-functions mu-shells mu-project projectile ibuf-ext ibuffer mu-programming macrostep clojure-mode-extra-font-locking ert pp debug flycheck-clojure json map cider-client cider-common cider-util clojure-mode align imenu nrepl-client tramp tramp-compat tramp-loaddefs trampver ucs-normalize shell pcomplete format-spec queue cider-compat spinner flycheck-package lisp-mnt flycheck find-func subr-x mu-utilities mu-net browse-url mu-latex auctex-latexmk smartparens-latex latex tex-style tex-buf tex dbus xml crm mu-languages mu-search mu-navigation elisp-slime-nav etags xref project winner mu-editing hungry-delete typo dubcaps-mode autorevert filenotify super-save saveplace aggressive-indent visual-fill-column undo-tree diff mu-ivy smex ido ivy delsel ffap url-parse auth-source eieio eieio-core gnus-util mm-util help-fns mail-prsvr password-cache url-vars mu-windows mu-buffers eldoc-eval mu-highlight beacon seq whitespace hi-lock diff-hl vc-dir ewoc vc vc-dispatcher diff-mode paren mu-keybindings which-key mu-pairs smartparens-config smartparens thingatpt mu-style smart-mode-line byte-opt rich-minority solarized-light-theme solarized page-break-lines edmacro kmacro exec-path-from-shell rx grep compile comint ansi-color ring dash use-package diminish bytecomp byte-compile cl-extra help-mode cconv bind-key easy-mmode finder-inf tex-site cl-seq cl-macs cl gv cl-loaddefs pcase cl-lib advice org2blog-autoloads sly-macrostep-autoloads sly-autoloads info package easymenu epg-config time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 751091 66737) (symbols 48 72038 0) (miscs 40 513 1097) (strings 32 181314 56239) (string-bytes 1 5315387) (vectors 16 89058) (vector-slots 8 2003546 206844) (floats 8 1763 1321) (intervals 56 6925 636) (buffers 976 36) (heap 1024 90127 3866)) -- Manuel Uberti http://informatica.boccaperta.com P. IVA: 03841100245 I prefer to use encrypted email. GPG fingerprint: 186F F867 975F B106 5EF3 1A58 D415 A33B 5D2D 5744 From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration References: <56CDC6D3.1050106@boccaperta.com> In-Reply-To: <56CDC6D3.1050106@boccaperta.com> Resent-From: Alex Branham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 27 Jun 2019 15:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.156165032411721 (code B ref 22792); Thu, 27 Jun 2019 15:46:02 +0000 Received: (at 22792) by debbugs.gnu.org; 27 Jun 2019 15:45:24 +0000 Received: from localhost ([127.0.0.1]:39329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgWaR-00032i-Qp for submit@debbugs.gnu.org; Thu, 27 Jun 2019 11:45:24 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]:37412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgWaQ-0002wT-7a for 22792@debbugs.gnu.org; Thu, 27 Jun 2019 11:45:22 -0400 Received: by mail-oi1-f171.google.com with SMTP id t76so1928106oih.4 for <22792@debbugs.gnu.org>; Thu, 27 Jun 2019 08:45:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=8l5N2+StAcnV85VLnxxhNXGiZHxZAlSRKmDc7Xc+0+M=; b=ppD/rokT9yCNMBB+YLHIsGVLKXHYD7SU+7uRywK/ECvPiXnFWHkOiC1tVy8DtcwYd0 kf1e+p139a1VVHtTZlz5gwIVLZtm2WOu6mWgAyozkHPKdr4t3S4DjnqK8KFXt869luUO fI30uQiF9XGLNAvidbSPu2zZbPraaBItCOQj5RizQUekjbZKNvHy8SwQHcmr09iqaCLD 4nHbb088/8hs2kR6O3j/OYOMDiXwDoEeZO/02DxcKgMgR4nZ8HBpihooTcCp9rAubviU fQk0dw/xBWQ+exghSG4+1tYSNCJ89jNeMsAsmRlK/KiwumG7glEjlQ9nk6ReGU1mR+vk q2CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=8l5N2+StAcnV85VLnxxhNXGiZHxZAlSRKmDc7Xc+0+M=; b=DnFzUxjZfD5I8HmBWTQAKcN1qWIdQFTUqakT+Yhsv8oY0braF33qfW7RrXFdGxCCvg s7k+ZwD4JW/yoV+jmtykjuekB3lXCv5u5pfkOQTy5kAI87Z1s37XmAbr0JjiT5Jr1nOt uwNruVLYgn+RQs6GQi/cP5KwzXiEUf9BWxdbtuD8Vt4+oBU7VbmVC3iz0BXM1Zv3olvQ jlvuUx1cYCzoLd7K3hWLfUu1Yr+m95N7R6419A/3ipFlmvDAe+eUAZaeiNHzR8SwFKS2 ZsviFHvtRfqQyqnmqi5NUPfh5uoS7hHQZQBPw6/I6NvkncCKhJnbCwUd1peAzNK/B93+ 6nGQ== X-Gm-Message-State: APjAAAUZJwRv9SYBcmz6Oa6cOWG1hpUs01nLLeGbVyg7TsNsD6OAXQUs Hi6W23pr840IabLqdFg2ljWkmldy X-Google-Smtp-Source: APXvYqzhzjO/uIL9qvRyG5JC/N8EEgCb9TNCdmakFLXULwoJLM4Cbq9qR8+XRNuTpQIx+YU3Mb6aow== X-Received: by 2002:aca:1805:: with SMTP id h5mr2471389oih.93.1561650316095; Thu, 27 Jun 2019 08:45:16 -0700 (PDT) Received: from earth (cpe-70-114-192-208.austin.res.rr.com. [70.114.192.208]) by smtp.gmail.com with ESMTPSA id p126sm936582oia.10.2019.06.27.08.45.15 for <22792@debbugs.gnu.org> (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Thu, 27 Jun 2019 08:45:15 -0700 (PDT) User-agent: mu4e 1.2.0; emacs 27.0.50 From: Alex Branham Date: Thu, 27 Jun 2019 10:45:14 -0500 Message-ID: <877e976nhx.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I can work on this bug. Moving the (re)-definition of eshell-mode-map out of eshell-mode is easy enough. The tricky part is that some of eshell's modules (e.g. em-cmpl) use define-key in eshell-mode-map (or eshell-command-map) too. This results in those keys getting redefined each time eshell is invoked. How do people want to handle that? We could create an em-cmpl minor mode with its own keymap, I suppose. Would that be satisfactory? Thanks, Alex From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 27 Jun 2019 19:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Alex Branham Cc: 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.156166340028741 (code B ref 22792); Thu, 27 Jun 2019 19:24:02 +0000 Received: (at 22792) by debbugs.gnu.org; 27 Jun 2019 19:23:20 +0000 Received: from localhost ([127.0.0.1]:39728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgZzL-0007TU-Uj for submit@debbugs.gnu.org; Thu, 27 Jun 2019 15:23:20 -0400 Received: from mail-io1-f49.google.com ([209.85.166.49]:34954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgZzI-0007TB-8g for 22792@debbugs.gnu.org; Thu, 27 Jun 2019 15:23:17 -0400 Received: by mail-io1-f49.google.com with SMTP id m24so7318195ioo.2 for <22792@debbugs.gnu.org>; Thu, 27 Jun 2019 12:23:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=YzGRxyuRSjdeaP9JSVZvb2TBMhBML8qTxR7SxTovltM=; b=I4Uv5omxtlkEEGmkZEvbx6/w6Q+KgThk7Dz9QW7UkH47ulRXFFjpDyBs7xF1kRcn8m ZqL+P8iQt05TFlOmZe8FNgMyS9Ij6U/lmcKIxn59dhy8eUUp9JjpYiySjrSDC7FfuZvM xk7OlOlSbaItb0oSLqvbzUpPqhoAWleELYy9eUZSm33SneIFQkkVzmWZkZh89XZnqCFi /+oI8722jXpNOue9R1XPobZop6CIpT02+4yyktCVRzObMdPvp2miuPtleL040XFmrfU4 ZkBKNGlxzpo9tCGGo8GXAfB3c1m+i6ZV2JOYm8Lfy2pZ4whsTC6HE6c+/DdPShWi7wBD 0R5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=YzGRxyuRSjdeaP9JSVZvb2TBMhBML8qTxR7SxTovltM=; b=A2nyo4IYQUsmEw811eRaj5eAyqMtM7uYYA1aphyMk9F0zKQvTM4NWmRr/nCbG7xKGA PKX7lzWs2yqIea4Smd/29/zVL8o2pvbCg94XEwFeej4J5PYWh5fvtPAEprw9xaITiuJl bEu2hyDCicHnrttt3QG0WZGGKcXaWIPu5XvzbdB7OfUC6c3hLzt+UUXigBrK4Ej2zoMN USdySHDzQ4PPw+5OqVqDQifMC1ifELEMmS6RRT+vfdgSx64RltKR8F9JIh6jqhzADM/x JybuuZtRHgqe5Q+eVzxUL1pmKiX5gqvny3PbiLTwjHi1tdOZTh/LW1Kywa2XVtwK30Uu D0Iw== X-Gm-Message-State: APjAAAX7OXIEHBkooqJ70Xw+FU8U/Vyh/jefGbQl1sw/O94m8akrMfbn H/uGKTet03Jo2QHgzrZ3JYejtFev X-Google-Smtp-Source: APXvYqzptFPdDnMuzniZ07m9czq6yhcZ+HytemJRU933l4wV8M0FEKqF6aPp2JPObLX3Zq6w5u3duw== X-Received: by 2002:a6b:ed09:: with SMTP id n9mr6154696iog.153.1561663390253; Thu, 27 Jun 2019 12:23:10 -0700 (PDT) Received: from vhost2 (CPE001143542e1f-CMf81d0f809fa0.cpe.net.cable.rogers.com. [99.230.51.196]) by smtp.gmail.com with ESMTPSA id p63sm71246iof.45.2019.06.27.12.23.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 27 Jun 2019 12:23:09 -0700 (PDT) From: Noam Postavsky References: <56CDC6D3.1050106@boccaperta.com> <877e976nhx.fsf@gmail.com> Date: Thu, 27 Jun 2019 15:23:09 -0400 In-Reply-To: <877e976nhx.fsf@gmail.com> (Alex Branham's message of "Thu, 27 Jun 2019 10:45:14 -0500") Message-ID: <85pnmy6deq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.92 (windows-nt) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Alex Branham writes: > We could create an em-cmpl minor mode with its own keymap, I > suppose. Would that be satisfactory? Makes sense to me. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 27 15:37:10 2019 Received: (at control) by debbugs.gnu.org; 27 Jun 2019 19:37:10 +0000 Received: from localhost ([127.0.0.1]:39762 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgaCk-0001bc-9r for submit@debbugs.gnu.org; Thu, 27 Jun 2019 15:37:10 -0400 Received: from mail-io1-f49.google.com ([209.85.166.49]:42237) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgaCi-0001bN-Bn for control@debbugs.gnu.org; Thu, 27 Jun 2019 15:37:08 -0400 Received: by mail-io1-f49.google.com with SMTP id u19so7294278ior.9 for ; Thu, 27 Jun 2019 12:37:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=/dLNT3bS3+sU8xUmvMWUjd/d3KxN+Aw7z8PfW3VBdrg=; b=bc0T0pQISDYHX98e+nEkwBreByPoFIvLvnMHtzh3DeU0lm0li0tgf4usc6C8xxKASY FiBKQxU/ZacX0pd5c882doOzYRMdv0TdoKFKj9gi7Rh6shuKrqjYS/u3xL3XjDR/vea3 yhnzFwsPOxGuUVKynnWdOEbiuzhMH7Xv5EdfuWZT5N46epF/LCwKLVq+NGA0l+z+ML++ 3BM+ZfBTdSOjgmCXNTo5GZUWSVQphvSizws10Q80uBIdJn7xU4rK1TNq2KGsWXuwAPnX rOoAPc01Mc3qmeNSii4SNfZ2LjSm3WekCX/50gWwlfiQvbZxyMWn6IprzaIkuagkHmd8 abJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=/dLNT3bS3+sU8xUmvMWUjd/d3KxN+Aw7z8PfW3VBdrg=; b=buvnEQx52D9qWFpXw8uZeFHYyMKAcSLWtGbplls+CMMHzvkaDxdDrc8m/VDgRO+ceI CEJmK47Arz6VrIZAkUQsosE7o6FwHMG98Ypa1m+jaP+9gJmxdnLHMMLfgoClODADPseT jMYLArjkpLdNMHbFRBgoU4nN3OyLIme6OeROSJivYOOU0t9HwYSqpM7+r6PDfM0I8jLC p/tlu/30T2NmyBv23zokbDoibcvUsgsCP7uzFbMWvXRsaIY+6+qInTWaB4LSl3ZW6L5V o/qA1N7fLs84z3cbzigwQLmEpE2Xp7jHtRn4GhRFDX+v/JGellw3b7rOzeqXB2siY0QR B/ng== X-Gm-Message-State: APjAAAUxaRSDKWpANI2c+j15OjJD1Oij45uN16cLHEYrJLXuBZVvkqCs uI9aj8iGJlLEC+03B2O3eSz5i9U5 X-Google-Smtp-Source: APXvYqzzxvwgYFN4F9gBflFuWSrwAp6o8RFJsUVh8k8lqCCj3eX9Ll4NUx0cNQSCqR+I/FqjkngpUQ== X-Received: by 2002:a5d:8905:: with SMTP id b5mr6686857ion.291.1561664222489; Thu, 27 Jun 2019 12:37:02 -0700 (PDT) Received: from vhost2 (CPE001143542e1f-CMf81d0f809fa0.cpe.net.cable.rogers.com. [99.230.51.196]) by smtp.gmail.com with ESMTPSA id e84sm173149iof.39.2019.06.27.12.37.01 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 27 Jun 2019 12:37:01 -0700 (PDT) From: Noam Postavsky To: control@debbugs.gnu.org Subject: control message for bug #33808 Date: Thu, 27 Jun 2019 15:37:02 -0400 Message-ID: <85lfxm6crl.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) # second try notforwarded 33808 merge 22792 33808 quit From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration Resent-From: Alex Branham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Jun 2019 18:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Noam Postavsky Cc: control@debbugs.gnu.org, 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.15617456752597 (code B ref 22792); Fri, 28 Jun 2019 18:15:02 +0000 Received: (at 22792) by debbugs.gnu.org; 28 Jun 2019 18:14:35 +0000 Received: from localhost ([127.0.0.1]:42945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgvOM-0000fi-3F for submit@debbugs.gnu.org; Fri, 28 Jun 2019 14:14:35 -0400 Received: from mail-ot1-f42.google.com ([209.85.210.42]:45870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgvOH-0000fK-1d; Fri, 28 Jun 2019 14:14:30 -0400 Received: by mail-ot1-f42.google.com with SMTP id x21so6860607otq.12; Fri, 28 Jun 2019 11:14:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=Wn9y/fLy2tgarmmLwukz7hgZDTYI1cr6dLWddMq3Tn0=; b=FZ2Y4efKIFkulA2NMcp+oC1qwQacZ9soGb0M3j5YLqX13qbiWQIr5lRbVfrljhTHsV rZHnLK9nNzVdepRMG0k8SOgxMeeE4kxcRDSTYAPla4Nz9zB6SDQ/pL8NweVn2xbDC6ss lBCQdQ0uP6lI5XKgJaSsDPEoF0svJ78aH7CdOnfLaxE02wKKoUreFB8Aly6+sUs7XuKR ouK2orX5FrPssKRWkGaLJXCyOZmHpEFO7qzfwUpe5z0PJHv5YmXsS6843EhHFmsBWvmd C740f/1rOy/8g/9wxCMJuQIxrxQcZW57cZ8yV0qx0uqP4XTBOrcnGBfsCzjSAs9HwC1N P6fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=Wn9y/fLy2tgarmmLwukz7hgZDTYI1cr6dLWddMq3Tn0=; b=noOBiOvEecftyKYU6VqjkNOoU/QPDRId4YZe7JznxuJN2lUQeEjd1YNroGIaRPr4BQ 3eZuNHFPsJXUBjnEjnICk1eteMLypJvn9qGts5oQuzwYjowKHRcvloGxZPzvXxbiwLaQ K8XU8IBq74SzJhJ4wuT2suEpj2pk71RScUm3nAKSDb9S5qORggp0QV4U/k0Ikh+XFlkz 7JgBx3PaWrDQic/b8gD4MEl/kcVz2iuzk3S9v9605cwD3zRkachBkurr7Wx76cgcGEJU 8cWiYy9AaAAtq1FG80C/mCBT/+s3ZhD9rgspTb06VEnAn9QnNdrZwjP8oAJZU9FQRqkS KJdg== X-Gm-Message-State: APjAAAWeHK9Xj+6awGsaS4rAitOvHgwFy/APznkxuvK7hN+YI4NcwirN Q/VLbSlv+10G/pZaKjJbw/FizXXGbDc= X-Google-Smtp-Source: APXvYqz2sSdUwf1sqRbQKOmPCDew0b9W0bmFTgMDwc6r9cNLQNh+iA3NrxzC6zhjSw009ORkiMXmqg== X-Received: by 2002:a05:6830:1042:: with SMTP id b2mr9269312otp.345.1561745662989; Fri, 28 Jun 2019 11:14:22 -0700 (PDT) Received: from earth (cpe-70-114-192-208.austin.res.rr.com. [70.114.192.208]) by smtp.gmail.com with ESMTPSA id i19sm968322oib.12.2019.06.28.11.14.21 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 28 Jun 2019 11:14:21 -0700 (PDT) References: <56CDC6D3.1050106@boccaperta.com> <877e976nhx.fsf@gmail.com> <85pnmy6deq.fsf@gmail.com> User-agent: mu4e 1.2.0; emacs 27.0.50 From: Alex Branham In-reply-to: <85pnmy6deq.fsf@gmail.com> Date: Fri, 28 Jun 2019 13:14:20 -0500 Message-ID: <87woh5mvb7.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain tags 22792 patch quit On Thu 27 Jun 2019 at 14:23, Noam Postavsky wrote: > Alex Branham writes: > >> We could create an em-cmpl minor mode with its own keymap, I >> suppose. Would that be satisfactory? > > Makes sense to me. OK, here's a patch that does so. The general idea is to make a minor mode with its own keymap for each of eshell's modules that (previously) assigned their keybindings into eshell-mode-map. Alex --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Fix-eshell-mode-map-initialization.patch >From 00e5ad69971e7f9abacf10d25325bdee6088f648 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Wed, 26 Jun 2019 13:59:06 -0500 Subject: [PATCH] Fix eshell-mode-map initialization * lisp/eshell/esh-mode.el (eshell-mode-map): (eshell-command-map): Set up normal keymaps and prefix commands rather than re-initializing them in each eshell buffer * lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map): (eshell-cmpl-mode): (eshell-cmpl-initialize): * lisp/eshell/em-hist.el (eshell-hist-mode-map): (eshell-hist-mode): (eshell-hist-initialize): * lisp/eshell/em-pred.el (eshell-pred-mode-map): (eshell-pred-mode): (eshell-pred-initialize): * lisp/eshell/em-prompt.el (eshell-prompt-mode-map): (eshell-prompt-mode): (eshell-prompt-initialize): * lisp/eshell/em-rebind.el (eshell-rebind-mode-map): (eshell-rebind-mode): (eshell-rebind-initialize): * lisp/eshell/esh-arg.el (eshell-arg-mode-map): (eshell-arg-mode): (eshell-arg-initialize): * lisp/eshell/esh-proc.el (eshell-proc-mode-map): (eshell-proc-mode): (eshell-proc-initialize): * lisp/eshell/esh-var.el (eshell-var-mode-map): (eshell-var-mode): (eshell-var-initialize): Create a new minor mode with a keymap and call it in the module initialization function. bug#33808 bug#22792 --- etc/NEWS | 5 ++++ lisp/eshell/em-cmpl.el | 33 ++++++++++++---------- lisp/eshell/em-hist.el | 60 +++++++++++++++++++++------------------- lisp/eshell/em-pred.el | 13 +++++++-- lisp/eshell/em-prompt.el | 14 ++++++++-- lisp/eshell/em-rebind.el | 11 +++++++- lisp/eshell/esh-arg.el | 14 +++++++--- lisp/eshell/esh-mode.el | 58 +++++++++++++++++--------------------- lisp/eshell/esh-proc.el | 26 +++++++++-------- lisp/eshell/esh-var.el | 14 ++++++---- 10 files changed, 148 insertions(+), 100 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 864eb8c110..83fac26e3a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1237,6 +1237,11 @@ default, and not just the opening element. behave similarly, e.g. Pcomplete's default cycling can be obtained with '(setq completion-cycle-threshold 5)'. +*** Eshell no longer re-initializes its keymap every call. +This allows users to use (define-key eshell-mode-map ...) as usual. +Some modules have their own minor mode now to account for these +changes. + --- *** Expansion of history event designators is disabled by default. To restore the old behavior, use diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index 8f6c6781b9..952091a479 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -244,6 +244,24 @@ to writing a completion function." (let ((completion-at-point-functions '(lisp-completion-at-point))) (completion-at-point))) +(defvar eshell-cmpl-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [(control ?i)] #'completion-at-point) + ;; jww (1999-10-19): Will this work on anything but X? + (define-key map [backtab] #'pcomplete-reverse) + (define-key map [(meta ??)] #'completion-help-at-point) + (define-key map [(meta control ?i)] #'eshell-complete-lisp-symbol) + ;; C-c prefix: + (define-key map (kbd "C-c M-h") #'eshell-completion-help) + (define-key map (kbd "C-c TAB") #'pcomplete-expand-and-complete) + (define-key map (kbd "C-c C-i") #'pcomplete-expand-and-complete) + (define-key map (kbd "C-c SPC") #'pcomplete-expand) + map)) + +(define-minor-mode eshell-cmpl-mode + "Minor mode that provides a keymap when `eshell-cmpl' active." + :keymap eshell-cmpl-mode-map) + (defun eshell-cmpl-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the completions module." (set (make-local-variable 'pcomplete-command-completion-function) @@ -291,22 +309,9 @@ to writing a completion function." eshell-special-chars-outside-quoting))) nil t) (add-hook 'pcomplete-quote-arg-hook #'eshell-quote-backslash nil t) - ;;(define-key eshell-mode-map [(meta tab)] 'eshell-complete-lisp-symbol) ; Redundant - (define-key eshell-mode-map [(meta control ?i)] 'eshell-complete-lisp-symbol) - (define-key eshell-command-map [(meta ?h)] 'eshell-completion-help) - (define-key eshell-command-map [tab] 'pcomplete-expand-and-complete) - (define-key eshell-command-map [(control ?i)] - 'pcomplete-expand-and-complete) - (define-key eshell-command-map [space] 'pcomplete-expand) - (define-key eshell-command-map [? ] 'pcomplete-expand) - ;;(define-key eshell-mode-map [tab] 'completion-at-point) ;Redundant! - (define-key eshell-mode-map [(control ?i)] 'completion-at-point) (add-hook 'completion-at-point-functions #'pcomplete-completions-at-point nil t) - ;; jww (1999-10-19): Will this work on anything but X? - (define-key eshell-mode-map - (if (featurep 'xemacs) [iso-left-tab] [backtab]) 'pcomplete-reverse) - (define-key eshell-mode-map [(meta ??)] 'completion-help-at-point)) + (eshell-cmpl-mode)) (defun eshell-completion-command-name () "Return the command name, possibly sans globbing." diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index adb028002b..19782e8d6c 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -202,6 +202,32 @@ element, regardless of any text on the command line. In that case, map) "Keymap used in isearch in Eshell.") +(defvar eshell-hist-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [up] #'eshell-previous-matching-input-from-input) + (define-key map [down] #'eshell-next-matching-input-from-input) + (define-key map [(control up)] #'eshell-previous-input) + (define-key map [(control down)] #'eshell-next-input) + (define-key map [(meta ?r)] #'eshell-previous-matching-input) + (define-key map [(meta ?s)] #'eshell-next-matching-input) + (define-key map (kbd "C-c M-r") #'eshell-previous-matching-input-from-input) + (define-key map (kbd "C-c M-s") #'eshell-next-matching-input-from-input) + ;; FIXME: Relies on `eshell-hist-match-partial' being set _before_ + ;; em-hist is loaded and won't respect changes. + (if eshell-hist-match-partial + (progn + (define-key map [(meta ?p)] 'eshell-previous-matching-input-from-input) + (define-key map [(meta ?n)] 'eshell-next-matching-input-from-input) + (define-key map (kbd "C-c M-p") #'eshell-previous-input) + (define-key map (kbd "C-c M-n") #'eshell-next-input)) + (define-key map [(meta ?p)] #'eshell-previous-input) + (define-key map [(meta ?n)] #'eshell-next-input) + (define-key map (kbd "C-c M-p") #'eshell-previous-matching-input-from-input) + (define-key map (kbd "C-c M-n") #'eshell-next-matching-input-from-input)) + (define-key map (kbd "C-c C-l") #'eshell-list-history) + (define-key map (kbd "C-c C-x") #'eshell-get-next-from-history) + map)) + (defvar eshell-rebind-keys-alist) ;;; Functions: @@ -216,6 +242,10 @@ Returns non-nil if INPUT is blank." Returns nil if INPUT is prepended by blank space, otherwise non-nil." (not (string-match-p "\\`\\s-+" input))) +(define-minor-mode eshell-hist-mode + "Minor mode for the eshell-hist module." + :keymap eshell-hist-mode-map) + (defun eshell-hist-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the history management code for one Eshell buffer." (when (eshell-using-module 'eshell-cmpl) @@ -242,30 +272,7 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (lambda () (setq overriding-terminal-local-map nil))) nil t)) - (define-key eshell-mode-map [up] 'eshell-previous-matching-input-from-input) - (define-key eshell-mode-map [down] 'eshell-next-matching-input-from-input) - (define-key eshell-mode-map [(control up)] 'eshell-previous-input) - (define-key eshell-mode-map [(control down)] 'eshell-next-input) - (define-key eshell-mode-map [(meta ?r)] 'eshell-previous-matching-input) - (define-key eshell-mode-map [(meta ?s)] 'eshell-next-matching-input) - (define-key eshell-command-map [(meta ?r)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-command-map [(meta ?s)] - 'eshell-next-matching-input-from-input) - (if eshell-hist-match-partial - (progn - (define-key eshell-mode-map [(meta ?p)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-mode-map [(meta ?n)] - 'eshell-next-matching-input-from-input) - (define-key eshell-command-map [(meta ?p)] 'eshell-previous-input) - (define-key eshell-command-map [(meta ?n)] 'eshell-next-input)) - (define-key eshell-mode-map [(meta ?p)] 'eshell-previous-input) - (define-key eshell-mode-map [(meta ?n)] 'eshell-next-input) - (define-key eshell-command-map [(meta ?p)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-command-map [(meta ?n)] - 'eshell-next-matching-input-from-input))) + (eshell-hist-mode)) (make-local-variable 'eshell-history-size) (or eshell-history-size @@ -300,10 +307,7 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (add-hook 'kill-emacs-hook #'eshell-save-some-history) (make-local-variable 'eshell-input-filter-functions) - (add-hook 'eshell-input-filter-functions #'eshell-add-to-history nil t) - - (define-key eshell-command-map [(control ?l)] 'eshell-list-history) - (define-key eshell-command-map [(control ?x)] 'eshell-get-next-from-history)) + (add-hook 'eshell-input-filter-functions #'eshell-add-to-history nil t)) (defun eshell-save-some-history () "Save the history for any open Eshell buffers." diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index 9bc856a296..1017e2b7c0 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -229,6 +229,12 @@ FOR LISTS OF ARGUMENTS: EXAMPLES: *.c(:o) sorted list of .c files") +(defvar eshell-pred-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-q") #'eshell-display-predicate-help) + (define-key map (kbd "C-c M-m") #'eshell-display-modifier-help) + map)) + ;;; Functions: (defun eshell-display-predicate-help () @@ -245,12 +251,15 @@ EXAMPLES: (lambda () (insert eshell-modifier-help-string))))) +(define-minor-mode eshell-pred-mode + "Minor mode for the eshell-pred module." + :keymap eshell-pred-mode-map) + (defun eshell-pred-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the predicate/modifier code." (add-hook 'eshell-parse-argument-hook #'eshell-parse-arg-modifier t t) - (define-key eshell-command-map [(meta ?q)] 'eshell-display-predicate-help) - (define-key eshell-command-map [(meta ?m)] 'eshell-display-modifier-help)) + (eshell-pred-mode)) (defun eshell-apply-modifiers (lst predicates modifiers) "Apply to LIST a series of PREDICATES and MODIFIERS." diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index adc68b6c85..9c396ce627 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -97,8 +97,18 @@ arriving, or after." :options '(eshell-show-maximum-output) :group 'eshell-prompt) +(defvar eshell-prompt-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-n") #'eshell-next-prompt) + (define-key map (kbd "C-c C-p") #'eshell-previous-prompt) + map)) + ;;; Functions: +(define-minor-mode eshell-prompt-mode + "Minor mode for eshell-prompt module." + :keymap eshell-prompt-mode-map) + (defun eshell-prompt-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the prompting code." (unless eshell-non-interactive-p @@ -110,9 +120,7 @@ arriving, or after." (set (make-local-variable 'eshell-skip-prompt-function) 'eshell-skip-prompt) - - (define-key eshell-command-map [(control ?n)] 'eshell-next-prompt) - (define-key eshell-command-map [(control ?p)] 'eshell-previous-prompt))) + (eshell-prompt-mode))) (defun eshell-emit-prompt () "Emit a prompt if eshell is being used interactively." diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index a817edbcc9..318f13d244 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -137,6 +137,11 @@ This is default behavior of shells like bash." :type '(repeat function) :group 'eshell-rebind) +(defvar eshell-rebind-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-l") #'eshell-lock-local-map) + map)) + ;; Internal Variables: (defvar eshell-input-keymap) @@ -145,6 +150,10 @@ This is default behavior of shells like bash." ;;; Functions: +(define-minor-mode eshell-rebind-mode + "Minor mode for the eshell-rebind module." + :keymap eshell-rebind-mode-map) + (defun eshell-rebind-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the inputting code." (unless eshell-non-interactive-p @@ -154,7 +163,7 @@ This is default behavior of shells like bash." (make-local-variable 'overriding-local-map) (add-hook 'post-command-hook 'eshell-rebind-input-map nil t) (set (make-local-variable 'eshell-lock-keymap) nil) - (define-key eshell-command-map [(meta ?l)] 'eshell-lock-local-map))) + (eshell-rebind-mode))) (defun eshell-lock-local-map (&optional arg) "Lock or unlock the current local keymap. diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index 026edc5980..bd31703e0d 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -155,14 +155,20 @@ treated as a literal character." :type 'hook :group 'eshell-arg) +(defvar eshell-arg-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-b") #'eshell-insert-buffer-name) + map)) + ;;; Functions: +(define-minor-mode eshell-arg-mode + "Minor mode for the arg eshell module." + :keymap eshell-arg-mode-map) + (defun eshell-arg-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the argument parsing code." - ;; This is supposedly run after enabling esh-mode, when eshell-mode-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?b)] 'eshell-insert-buffer-name) + (eshell-arg-mode) (set (make-local-variable 'eshell-inside-quote-regexp) nil) (set (make-local-variable 'eshell-outside-quote-regexp) nil)) diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 80844c3a64..91204877f5 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -213,10 +213,7 @@ This is used by `eshell-watch-for-password-prompt'." ;; these are only set to nil initially for the sake of the ;; byte-compiler, when compiling other files which `require' this one (defvar eshell-mode nil) -(defvar eshell-mode-map nil) (defvar eshell-command-running-string "--") -(defvar eshell-command-map nil) -(defvar eshell-command-prefix nil) (defvar eshell-last-input-start nil) (defvar eshell-last-input-end nil) (defvar eshell-last-output-start nil) @@ -286,6 +283,32 @@ This is used by `eshell-watch-for-password-prompt'." (standard-syntax-table)) st)) +(defvar eshell-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [(control ?c)] 'eshell-command-map) + (define-key map "\r" #'eshell-send-input) + (define-key map "\M-\r" #'eshell-queue-input) + (define-key map [(meta control ?l)] #'eshell-show-output) + (define-key map [(control ?a)] #'eshell-bol) + map)) + +(defvar eshell-command-map + (let ((map (define-prefix-command 'eshell-command-map))) + (define-key map [(meta ?o)] #'eshell-mark-output) + (define-key map [(meta ?d)] #'eshell-toggle-direct-send) + (define-key map [(control ?a)] #'eshell-bol) + (define-key map [(control ?b)] #'eshell-backward-argument) + (define-key map [(control ?e)] #'eshell-show-maximum-output) + (define-key map [(control ?f)] #'eshell-forward-argument) + (define-key map [(control ?m)] #'eshell-copy-old-input) + (define-key map [(control ?o)] #'eshell-kill-output) + (define-key map [(control ?r)] #'eshell-show-output) + (define-key map [(control ?t)] #'eshell-truncate-buffer) + (define-key map [(control ?u)] #'eshell-kill-input) + (define-key map [(control ?w)] #'backward-kill-word) + (define-key map [(control ?y)] #'eshell-repeat-argument) + map)) + ;;; User Functions: (defun eshell-kill-buffer-function () @@ -304,10 +327,6 @@ and the hook `eshell-exit-hook'." "Emacs shell interactive mode." (setq-local eshell-mode t) - ;; FIXME: What the hell!? - (setq-local eshell-mode-map (make-sparse-keymap)) - (use-local-map eshell-mode-map) - (when eshell-status-in-mode-line (make-local-variable 'eshell-command-running-string) (let ((fmt (copy-sequence mode-line-format))) @@ -316,31 +335,6 @@ and the hook `eshell-exit-hook'." (if mode-line-elt (setcar mode-line-elt 'eshell-command-running-string)))) - (define-key eshell-mode-map "\r" 'eshell-send-input) - (define-key eshell-mode-map "\M-\r" 'eshell-queue-input) - (define-key eshell-mode-map [(meta control ?l)] 'eshell-show-output) - (define-key eshell-mode-map [(control ?a)] 'eshell-bol) - - (setq-local eshell-command-prefix (make-symbol "eshell-command-prefix")) - (fset eshell-command-prefix (make-sparse-keymap)) - (setq-local eshell-command-map (symbol-function eshell-command-prefix)) - (define-key eshell-mode-map [(control ?c)] eshell-command-prefix) - - (define-key eshell-command-map [(meta ?o)] 'eshell-mark-output) - (define-key eshell-command-map [(meta ?d)] 'eshell-toggle-direct-send) - - (define-key eshell-command-map [(control ?a)] 'eshell-bol) - (define-key eshell-command-map [(control ?b)] 'eshell-backward-argument) - (define-key eshell-command-map [(control ?e)] 'eshell-show-maximum-output) - (define-key eshell-command-map [(control ?f)] 'eshell-forward-argument) - (define-key eshell-command-map [(control ?m)] 'eshell-copy-old-input) - (define-key eshell-command-map [(control ?o)] 'eshell-kill-output) - (define-key eshell-command-map [(control ?r)] 'eshell-show-output) - (define-key eshell-command-map [(control ?t)] 'eshell-truncate-buffer) - (define-key eshell-command-map [(control ?u)] 'eshell-kill-input) - (define-key eshell-command-map [(control ?w)] 'backward-kill-word) - (define-key eshell-command-map [(control ?y)] 'eshell-repeat-argument) - (setq local-abbrev-table eshell-mode-abbrev-table) (set (make-local-variable 'list-buffers-directory) diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index 32a3eecb52..7825377e66 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -109,6 +109,16 @@ information, for example." (defvar eshell-process-list nil "A list of the current status of subprocesses.") +(defvar eshell-proc-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-i") #'eshell-insert-process) + (define-key map (kbd "C-c C-c") #'eshell-interrupt-process) + (define-key map (kbd "C-c C-k") #'eshell-kill-process) + (define-key map (kbd "C-c C-d") #'eshell-send-eof-to-process) + (define-key map (kbd "C-c C-s") #'list-processes) + (define-key map (kbd "C-c C-\\") #'eshell-quit-process) + map)) + ;;; Functions: (defun eshell-kill-process-function (proc status) @@ -121,20 +131,14 @@ PROC and STATUS to functions on the latter." (eshell-reset-after-proc status) (run-hook-with-args 'eshell-kill-hook proc status)) +(define-minor-mode eshell-proc-mode + "Minor mode for the proc eshell module." + :keymap eshell-proc-mode-map) + (defun eshell-proc-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the process handling code." (make-local-variable 'eshell-process-list) - ;; This is supposedly run after enabling esh-mode, when eshell-command-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?i)] 'eshell-insert-process) - (define-key eshell-command-map [(control ?c)] 'eshell-interrupt-process) - (define-key eshell-command-map [(control ?k)] 'eshell-kill-process) - (define-key eshell-command-map [(control ?d)] 'eshell-send-eof-to-process) -; (define-key eshell-command-map [(control ?q)] 'eshell-continue-process) - (define-key eshell-command-map [(control ?s)] 'list-processes) -; (define-key eshell-command-map [(control ?z)] 'eshell-stop-process) - (define-key eshell-command-map [(control ?\\)] 'eshell-quit-process)) + (eshell-proc-mode)) (defun eshell-reset-after-proc (status) "Reset the command input location after a process terminates. diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index b08a5d242f..00bea09384 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -197,8 +197,17 @@ function), and the arguments passed to this function would be the list (put 'eshell-variable-aliases-list 'risky-local-variable t) +(defvar eshell-var-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-v") #'eshell-insert-envvar) + map)) + ;;; Functions: +(define-minor-mode eshell-var-mode + "Minor mode for the esh-var module." + :keymap eshell-var-mode-map) + (defun eshell-var-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the variable handle code." ;; Break the association with our parent's environment. Otherwise, @@ -207,11 +216,6 @@ function), and the arguments passed to this function would be the list (set (make-local-variable 'process-environment) (eshell-copy-environment))) - ;; This is supposedly run after enabling esh-mode, when eshell-command-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?v)] 'eshell-insert-envvar) - (set (make-local-variable 'eshell-special-chars-inside-quoting) (append eshell-special-chars-inside-quoting '(?$))) (set (make-local-variable 'eshell-special-chars-outside-quoting) -- 2.22.0 --=-=-=-- From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Jul 2019 03:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Alex Branham Cc: 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.156238305431598 (code B ref 22792); Sat, 06 Jul 2019 03:18:02 +0000 Received: (at 22792) by debbugs.gnu.org; 6 Jul 2019 03:17:34 +0000 Received: from localhost ([127.0.0.1]:54063 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hjbCe-0008DZ-AM for submit@debbugs.gnu.org; Fri, 05 Jul 2019 23:17:34 -0400 Received: from mail-io1-f46.google.com ([209.85.166.46]:37138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hjbCc-0008DJ-9b for 22792@debbugs.gnu.org; Fri, 05 Jul 2019 23:17:30 -0400 Received: by mail-io1-f46.google.com with SMTP id q22so1287944iog.4 for <22792@debbugs.gnu.org>; Fri, 05 Jul 2019 20:17:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=syvYIwbNMkJSlgw+/CSSHzePlqBccmdsh0dYq8eI/Qg=; b=vYgN21JHq74BGbrj0WkSuBJCjUCMmXMbfm6EIOWIH0WfTMrkxBm74s26XNGUP/FpX6 qC+Sb8aNNSEphOJ2SiQMsPOzp1lpUQaqB6fatWJzjeYSTSl4Ygw2O899L0EnSd0xAqP8 S0kinPh9Co0fqtSJ6NnUBAGzJaeH51QvI06x0Pui9bVbXIV255+0VXBw2Yn3XoaTYHWG pwIEEuMINb5pAEzv41q7SQdC5B1koT30RJlrAvlGUtAFOwJlJVR6cKe2F68OtTF/zeUq CNGYIGu6jhtHhI1s4Gm0YybKPtuX2+Orzq5Gn4c4snViBFMEgxWlZ3U566xeqkmmjO35 8oeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=syvYIwbNMkJSlgw+/CSSHzePlqBccmdsh0dYq8eI/Qg=; b=U2FBDzG/JnlQDDzTD8jO8z984qK/F7FOxJLv15Mk0E7yF602cKRljzdgkXtw/GrblX wRrIZiUuDgU2tQkKN+jQs3NdpZTS34dTl65T8ypo/cBgTFPdLs8+NngkAOpzXSuaijNJ 5pbTOS0OKfV3XnHLYi2LYTL2FLe1JWDMcxG5Z6IyJ8VSpYO2uunmRRgMoecysNBq0NO5 elzIoCukzI47/hkkvmgvYL71WLpCjWrxp6UzWMm56uEuzPwcXOWMXVsckUKN2f5wyzO6 q3rSTginrEpN6Lh7mR0MzSGwuQzHXsJznS/OnI6rrODKainVUNRPVGJ2hdqWgbk/X9KZ nRdQ== X-Gm-Message-State: APjAAAVnLJbjDLzdz5MijzpT1K87EFkn6KtCrZ9dfIm8i+YFZegv9Dgo 2tufxVqIRL3dC7Yy9tulL/WJzNXH X-Google-Smtp-Source: APXvYqwN54A1SVBODyijk/weQY7MdfUKhdr6xhKcTmEab8FcMV4kDJuj2gRN7SHZRFh/yfGXnSGx9Q== X-Received: by 2002:a5d:8890:: with SMTP id d16mr5146552ioo.274.1562383044554; Fri, 05 Jul 2019 20:17:24 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id u17sm4554781iob.57.2019.07.05.20.17.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 05 Jul 2019 20:17:24 -0700 (PDT) From: Noam Postavsky References: <56CDC6D3.1050106@boccaperta.com> <877e976nhx.fsf@gmail.com> <85pnmy6deq.fsf@gmail.com> <87woh5mvb7.fsf@gmail.com> Date: Fri, 05 Jul 2019 23:17:23 -0400 In-Reply-To: <87woh5mvb7.fsf@gmail.com> (Alex Branham's message of "Fri, 28 Jun 2019 13:14:20 -0500") Message-ID: <87v9wf4zss.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Alex Branham writes: > OK, here's a patch that does so. The general idea is to make a minor > mode with its own keymap for each of eshell's modules that (previously) > assigned their keybindings into eshell-mode-map. Looks like this loses the keybindings from C-h m. Is it possible to keep those? Or failing that, add them to the new minor mode docs. From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration Resent-From: Alex Branham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 13 Aug 2019 16:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Noam Postavsky Cc: 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.15657137225177 (code B ref 22792); Tue, 13 Aug 2019 16:29:02 +0000 Received: (at 22792) by debbugs.gnu.org; 13 Aug 2019 16:28:42 +0000 Received: from localhost ([127.0.0.1]:48587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hxZf6-0001LQ-OA for submit@debbugs.gnu.org; Tue, 13 Aug 2019 12:28:41 -0400 Received: from mail-ot1-f41.google.com ([209.85.210.41]:44188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hxZf4-0001LA-C8 for 22792@debbugs.gnu.org; Tue, 13 Aug 2019 12:28:39 -0400 Received: by mail-ot1-f41.google.com with SMTP id w4so7623421ote.11 for <22792@debbugs.gnu.org>; Tue, 13 Aug 2019 09:28:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=9pQ74Vosx79KwLdQuqg/j0F8mvnqEJGO3jXeA01zDeM=; b=Hj3r0H/zIG1gmrOyJNcu1s0s4emnog4d8WseKW1mR83b05SRtm5gUEe7G/U2b7/28g OdS1YHm8rAEuGQJVs3fFdRh78NNeqnxbCBavXTC3RX+oolIU5XthtMZa1TyaiVlelnt4 a7C4zxCk33TIE8uzu4Hib3TRhHskzWIb4xKhgh51ICL85LfN6jMVs8RDQG10FhhaCLE6 8+UcTSNotOvjuWmlNdnnxyGL9eVg7OHptI1J3tdbvw6XXilfIhoFSZ1dwhVcXHr1ArYm qVI7kon4YQQj/SzQIoC5D4R+zrHtLqYLrPyo6WDPw+dnh8itqKpdR/yS4Ux389lRfeVW C5+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=9pQ74Vosx79KwLdQuqg/j0F8mvnqEJGO3jXeA01zDeM=; b=JVd7BYf0sn4/FsHeaOgxAl6CpO7lcq4sxGSBR4WJt/jL41dAFy5wmUDp1Z5EtLDQ0b bBp4vQUyGL9Vb5mkQZnB80JMyGov89r/7upTHu41GAq0suWNyAfmaoms8wFvX8YrNC6l 2eDvE7C+xbiL4dH8OMP+rfaRNz0+XH8zO4sGBtA2iW9++ZnLua3jQQWneY3EegPeFv0H ZHLItS7dENgXCt/Yr0x3GHWfvtVYjRws2k8/q4yp/Ca++LU3Ad0+eS1K8JkY08CthfwX 3RYhdyM3l9XYpa/Vm6ZeVEV9MMjRC/wrBzrL+qCSrjE0A7TY+pnszGZ9g4NssBAXx6RH OXwQ== X-Gm-Message-State: APjAAAVbGHqMMQpPceT+XMNGaBbAsnCI/Gp5eKY+HVx0+BDiasR9HOx4 MLVyrKz6lbmSCVR8YZQIGZ0= X-Google-Smtp-Source: APXvYqyjgon+UmUhOhwVxb39FQmfGl4rObJrmQdpCb6DVexTuWrbmTdiWSPzzLiLp6sIVeXTql9HtQ== X-Received: by 2002:a05:6830:1209:: with SMTP id r9mr27935316otp.128.1565713712472; Tue, 13 Aug 2019 09:28:32 -0700 (PDT) Received: from earth (cpe-70-114-192-208.austin.res.rr.com. [70.114.192.208]) by smtp.gmail.com with ESMTPSA id o26sm35461705otl.34.2019.08.13.09.28.30 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 09:28:30 -0700 (PDT) From: Alex Branham References: <56CDC6D3.1050106@boccaperta.com> <877e976nhx.fsf@gmail.com> <85pnmy6deq.fsf@gmail.com> <87woh5mvb7.fsf@gmail.com> <87v9wf4zss.fsf@gmail.com> Date: Tue, 13 Aug 2019 11:28:29 -0500 In-Reply-To: <87v9wf4zss.fsf@gmail.com> (Noam Postavsky's message of "Fri, 05 Jul 2019 23:17:23 -0400") Message-ID: <87ftm5uj0y.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain On Fri 05 Jul 2019 at 23:17, Noam Postavsky wrote: > Alex Branham writes: > >> OK, here's a patch that does so. The general idea is to make a minor >> mode with its own keymap for each of eshell's modules that (previously) >> assigned their keybindings into eshell-mode-map. > > Looks like this loses the keybindings from C-h m. Is it possible to > keep those? Or failing that, add them to the new minor mode docs. Sorry for the delayed reply. I don't know of a straightforward way to keep those in C-h m since this uses minor modes, but it's easy enough to add those into the docstring of the minor mode. The more I think about this the more I wonder whether the whole eshell-module framework should just be moved to minor modes, then we could just call run-hooks on eshell-modules to set everything up. But that's a question for a later day I suppose. Thanks, Alex --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Fix-eshell-mode-map-initialization.patch >From 587f5e7226e69e221bf402eccf595bc78a4a5670 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Wed, 26 Jun 2019 13:59:06 -0500 Subject: [PATCH] Fix eshell-mode-map initialization * lisp/eshell/esh-mode.el (eshell-mode-map): (eshell-command-map): Set up normal keymaps and prefix commands rather than re-initializing them in each eshell buffer * lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map): (eshell-cmpl-mode): (eshell-cmpl-initialize): * lisp/eshell/em-hist.el (eshell-hist-mode-map): (eshell-hist-mode): (eshell-hist-initialize): * lisp/eshell/em-pred.el (eshell-pred-mode-map): (eshell-pred-mode): (eshell-pred-initialize): * lisp/eshell/em-prompt.el (eshell-prompt-mode-map): (eshell-prompt-mode): (eshell-prompt-initialize): * lisp/eshell/em-rebind.el (eshell-rebind-mode-map): (eshell-rebind-mode): (eshell-rebind-initialize): * lisp/eshell/esh-arg.el (eshell-arg-mode-map): (eshell-arg-mode): (eshell-arg-initialize): * lisp/eshell/esh-proc.el (eshell-proc-mode-map): (eshell-proc-mode): (eshell-proc-initialize): * lisp/eshell/esh-var.el (eshell-var-mode-map): (eshell-var-mode): (eshell-var-initialize): Create a new minor mode with a keymap and call it in the module initialization function. bug#33808 bug#22792 --- etc/NEWS | 6 ++++ lisp/eshell/em-cmpl.el | 35 ++++++++++++++--------- lisp/eshell/em-hist.el | 62 ++++++++++++++++++++++------------------ lisp/eshell/em-pred.el | 15 ++++++++-- lisp/eshell/em-prompt.el | 16 +++++++++-- lisp/eshell/em-rebind.el | 13 ++++++++- lisp/eshell/esh-arg.el | 16 ++++++++--- lisp/eshell/esh-mode.el | 58 +++++++++++++++++-------------------- lisp/eshell/esh-proc.el | 28 +++++++++++------- lisp/eshell/esh-var.el | 16 +++++++---- 10 files changed, 165 insertions(+), 100 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index b9e9e28db4..9f899a45bc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1352,6 +1352,12 @@ default, and not just the opening element. behave similarly, e.g. Pcomplete's default cycling can be obtained with '(setq completion-cycle-threshold 5)'. +--- +*** Eshell no longer re-initializes its keymap every call. +This allows users to use (define-key eshell-mode-map ...) as usual. +Some modules have their own minor mode now to account for these +changes. + +++ *** Expansion of history event designators is disabled by default. To restore the old behavior, use diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index 8f6c6781b9..df4e24c88b 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -244,6 +244,26 @@ to writing a completion function." (let ((completion-at-point-functions '(lisp-completion-at-point))) (completion-at-point))) +(defvar eshell-cmpl-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [(control ?i)] #'completion-at-point) + ;; jww (1999-10-19): Will this work on anything but X? + (define-key map [backtab] #'pcomplete-reverse) + (define-key map [(meta ??)] #'completion-help-at-point) + (define-key map [(meta control ?i)] #'eshell-complete-lisp-symbol) + ;; C-c prefix: + (define-key map (kbd "C-c M-h") #'eshell-completion-help) + (define-key map (kbd "C-c TAB") #'pcomplete-expand-and-complete) + (define-key map (kbd "C-c C-i") #'pcomplete-expand-and-complete) + (define-key map (kbd "C-c SPC") #'pcomplete-expand) + map)) + +(define-minor-mode eshell-cmpl-mode + "Minor mode that provides a keymap when `eshell-cmpl' active. + +\\{eshell-cmpl-mode-map}" + :keymap eshell-cmpl-mode-map) + (defun eshell-cmpl-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the completions module." (set (make-local-variable 'pcomplete-command-completion-function) @@ -291,22 +311,9 @@ to writing a completion function." eshell-special-chars-outside-quoting))) nil t) (add-hook 'pcomplete-quote-arg-hook #'eshell-quote-backslash nil t) - ;;(define-key eshell-mode-map [(meta tab)] 'eshell-complete-lisp-symbol) ; Redundant - (define-key eshell-mode-map [(meta control ?i)] 'eshell-complete-lisp-symbol) - (define-key eshell-command-map [(meta ?h)] 'eshell-completion-help) - (define-key eshell-command-map [tab] 'pcomplete-expand-and-complete) - (define-key eshell-command-map [(control ?i)] - 'pcomplete-expand-and-complete) - (define-key eshell-command-map [space] 'pcomplete-expand) - (define-key eshell-command-map [? ] 'pcomplete-expand) - ;;(define-key eshell-mode-map [tab] 'completion-at-point) ;Redundant! - (define-key eshell-mode-map [(control ?i)] 'completion-at-point) (add-hook 'completion-at-point-functions #'pcomplete-completions-at-point nil t) - ;; jww (1999-10-19): Will this work on anything but X? - (define-key eshell-mode-map - (if (featurep 'xemacs) [iso-left-tab] [backtab]) 'pcomplete-reverse) - (define-key eshell-mode-map [(meta ??)] 'completion-help-at-point)) + (eshell-cmpl-mode)) (defun eshell-completion-command-name () "Return the command name, possibly sans globbing." diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index adb028002b..9a9e6f0f39 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -202,6 +202,32 @@ element, regardless of any text on the command line. In that case, map) "Keymap used in isearch in Eshell.") +(defvar eshell-hist-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [up] #'eshell-previous-matching-input-from-input) + (define-key map [down] #'eshell-next-matching-input-from-input) + (define-key map [(control up)] #'eshell-previous-input) + (define-key map [(control down)] #'eshell-next-input) + (define-key map [(meta ?r)] #'eshell-previous-matching-input) + (define-key map [(meta ?s)] #'eshell-next-matching-input) + (define-key map (kbd "C-c M-r") #'eshell-previous-matching-input-from-input) + (define-key map (kbd "C-c M-s") #'eshell-next-matching-input-from-input) + ;; FIXME: Relies on `eshell-hist-match-partial' being set _before_ + ;; em-hist is loaded and won't respect changes. + (if eshell-hist-match-partial + (progn + (define-key map [(meta ?p)] 'eshell-previous-matching-input-from-input) + (define-key map [(meta ?n)] 'eshell-next-matching-input-from-input) + (define-key map (kbd "C-c M-p") #'eshell-previous-input) + (define-key map (kbd "C-c M-n") #'eshell-next-input)) + (define-key map [(meta ?p)] #'eshell-previous-input) + (define-key map [(meta ?n)] #'eshell-next-input) + (define-key map (kbd "C-c M-p") #'eshell-previous-matching-input-from-input) + (define-key map (kbd "C-c M-n") #'eshell-next-matching-input-from-input)) + (define-key map (kbd "C-c C-l") #'eshell-list-history) + (define-key map (kbd "C-c C-x") #'eshell-get-next-from-history) + map)) + (defvar eshell-rebind-keys-alist) ;;; Functions: @@ -216,6 +242,12 @@ Returns non-nil if INPUT is blank." Returns nil if INPUT is prepended by blank space, otherwise non-nil." (not (string-match-p "\\`\\s-+" input))) +(define-minor-mode eshell-hist-mode + "Minor mode for the eshell-hist module. + +\\{eshell-hist-mode-map}" + :keymap eshell-hist-mode-map) + (defun eshell-hist-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the history management code for one Eshell buffer." (when (eshell-using-module 'eshell-cmpl) @@ -242,30 +274,7 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (lambda () (setq overriding-terminal-local-map nil))) nil t)) - (define-key eshell-mode-map [up] 'eshell-previous-matching-input-from-input) - (define-key eshell-mode-map [down] 'eshell-next-matching-input-from-input) - (define-key eshell-mode-map [(control up)] 'eshell-previous-input) - (define-key eshell-mode-map [(control down)] 'eshell-next-input) - (define-key eshell-mode-map [(meta ?r)] 'eshell-previous-matching-input) - (define-key eshell-mode-map [(meta ?s)] 'eshell-next-matching-input) - (define-key eshell-command-map [(meta ?r)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-command-map [(meta ?s)] - 'eshell-next-matching-input-from-input) - (if eshell-hist-match-partial - (progn - (define-key eshell-mode-map [(meta ?p)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-mode-map [(meta ?n)] - 'eshell-next-matching-input-from-input) - (define-key eshell-command-map [(meta ?p)] 'eshell-previous-input) - (define-key eshell-command-map [(meta ?n)] 'eshell-next-input)) - (define-key eshell-mode-map [(meta ?p)] 'eshell-previous-input) - (define-key eshell-mode-map [(meta ?n)] 'eshell-next-input) - (define-key eshell-command-map [(meta ?p)] - 'eshell-previous-matching-input-from-input) - (define-key eshell-command-map [(meta ?n)] - 'eshell-next-matching-input-from-input))) + (eshell-hist-mode)) (make-local-variable 'eshell-history-size) (or eshell-history-size @@ -300,10 +309,7 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (add-hook 'kill-emacs-hook #'eshell-save-some-history) (make-local-variable 'eshell-input-filter-functions) - (add-hook 'eshell-input-filter-functions #'eshell-add-to-history nil t) - - (define-key eshell-command-map [(control ?l)] 'eshell-list-history) - (define-key eshell-command-map [(control ?x)] 'eshell-get-next-from-history)) + (add-hook 'eshell-input-filter-functions #'eshell-add-to-history nil t)) (defun eshell-save-some-history () "Save the history for any open Eshell buffers." diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index 9bc856a296..cfef59f962 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -229,6 +229,12 @@ FOR LISTS OF ARGUMENTS: EXAMPLES: *.c(:o) sorted list of .c files") +(defvar eshell-pred-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-q") #'eshell-display-predicate-help) + (define-key map (kbd "C-c M-m") #'eshell-display-modifier-help) + map)) + ;;; Functions: (defun eshell-display-predicate-help () @@ -245,12 +251,17 @@ EXAMPLES: (lambda () (insert eshell-modifier-help-string))))) +(define-minor-mode eshell-pred-mode + "Minor mode for the eshell-pred module. + +\\{eshell-pred-mode-map}" + :keymap eshell-pred-mode-map) + (defun eshell-pred-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the predicate/modifier code." (add-hook 'eshell-parse-argument-hook #'eshell-parse-arg-modifier t t) - (define-key eshell-command-map [(meta ?q)] 'eshell-display-predicate-help) - (define-key eshell-command-map [(meta ?m)] 'eshell-display-modifier-help)) + (eshell-pred-mode)) (defun eshell-apply-modifiers (lst predicates modifiers) "Apply to LIST a series of PREDICATES and MODIFIERS." diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index adc68b6c85..993a740b82 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -97,8 +97,20 @@ arriving, or after." :options '(eshell-show-maximum-output) :group 'eshell-prompt) +(defvar eshell-prompt-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-n") #'eshell-next-prompt) + (define-key map (kbd "C-c C-p") #'eshell-previous-prompt) + map)) + ;;; Functions: +(define-minor-mode eshell-prompt-mode + "Minor mode for eshell-prompt module. + +\\{eshell-prompt-mode-map}" + :keymap eshell-prompt-mode-map) + (defun eshell-prompt-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the prompting code." (unless eshell-non-interactive-p @@ -110,9 +122,7 @@ arriving, or after." (set (make-local-variable 'eshell-skip-prompt-function) 'eshell-skip-prompt) - - (define-key eshell-command-map [(control ?n)] 'eshell-next-prompt) - (define-key eshell-command-map [(control ?p)] 'eshell-previous-prompt))) + (eshell-prompt-mode))) (defun eshell-emit-prompt () "Emit a prompt if eshell is being used interactively." diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index a817edbcc9..5fb6677e18 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -137,6 +137,11 @@ This is default behavior of shells like bash." :type '(repeat function) :group 'eshell-rebind) +(defvar eshell-rebind-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-l") #'eshell-lock-local-map) + map)) + ;; Internal Variables: (defvar eshell-input-keymap) @@ -145,6 +150,12 @@ This is default behavior of shells like bash." ;;; Functions: +(define-minor-mode eshell-rebind-mode + "Minor mode for the eshell-rebind module. + +\\{eshell-rebind-mode-map}" + :keymap eshell-rebind-mode-map) + (defun eshell-rebind-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the inputting code." (unless eshell-non-interactive-p @@ -154,7 +165,7 @@ This is default behavior of shells like bash." (make-local-variable 'overriding-local-map) (add-hook 'post-command-hook 'eshell-rebind-input-map nil t) (set (make-local-variable 'eshell-lock-keymap) nil) - (define-key eshell-command-map [(meta ?l)] 'eshell-lock-local-map))) + (eshell-rebind-mode))) (defun eshell-lock-local-map (&optional arg) "Lock or unlock the current local keymap. diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index 026edc5980..4685095826 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -155,14 +155,22 @@ treated as a literal character." :type 'hook :group 'eshell-arg) +(defvar eshell-arg-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-b") #'eshell-insert-buffer-name) + map)) + ;;; Functions: +(define-minor-mode eshell-arg-mode + "Minor mode for the arg eshell module. + +\\{eshell-arg-mode-map}" + :keymap eshell-arg-mode-map) + (defun eshell-arg-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the argument parsing code." - ;; This is supposedly run after enabling esh-mode, when eshell-mode-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?b)] 'eshell-insert-buffer-name) + (eshell-arg-mode) (set (make-local-variable 'eshell-inside-quote-regexp) nil) (set (make-local-variable 'eshell-outside-quote-regexp) nil)) diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 80844c3a64..91204877f5 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -213,10 +213,7 @@ This is used by `eshell-watch-for-password-prompt'." ;; these are only set to nil initially for the sake of the ;; byte-compiler, when compiling other files which `require' this one (defvar eshell-mode nil) -(defvar eshell-mode-map nil) (defvar eshell-command-running-string "--") -(defvar eshell-command-map nil) -(defvar eshell-command-prefix nil) (defvar eshell-last-input-start nil) (defvar eshell-last-input-end nil) (defvar eshell-last-output-start nil) @@ -286,6 +283,32 @@ This is used by `eshell-watch-for-password-prompt'." (standard-syntax-table)) st)) +(defvar eshell-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [(control ?c)] 'eshell-command-map) + (define-key map "\r" #'eshell-send-input) + (define-key map "\M-\r" #'eshell-queue-input) + (define-key map [(meta control ?l)] #'eshell-show-output) + (define-key map [(control ?a)] #'eshell-bol) + map)) + +(defvar eshell-command-map + (let ((map (define-prefix-command 'eshell-command-map))) + (define-key map [(meta ?o)] #'eshell-mark-output) + (define-key map [(meta ?d)] #'eshell-toggle-direct-send) + (define-key map [(control ?a)] #'eshell-bol) + (define-key map [(control ?b)] #'eshell-backward-argument) + (define-key map [(control ?e)] #'eshell-show-maximum-output) + (define-key map [(control ?f)] #'eshell-forward-argument) + (define-key map [(control ?m)] #'eshell-copy-old-input) + (define-key map [(control ?o)] #'eshell-kill-output) + (define-key map [(control ?r)] #'eshell-show-output) + (define-key map [(control ?t)] #'eshell-truncate-buffer) + (define-key map [(control ?u)] #'eshell-kill-input) + (define-key map [(control ?w)] #'backward-kill-word) + (define-key map [(control ?y)] #'eshell-repeat-argument) + map)) + ;;; User Functions: (defun eshell-kill-buffer-function () @@ -304,10 +327,6 @@ and the hook `eshell-exit-hook'." "Emacs shell interactive mode." (setq-local eshell-mode t) - ;; FIXME: What the hell!? - (setq-local eshell-mode-map (make-sparse-keymap)) - (use-local-map eshell-mode-map) - (when eshell-status-in-mode-line (make-local-variable 'eshell-command-running-string) (let ((fmt (copy-sequence mode-line-format))) @@ -316,31 +335,6 @@ and the hook `eshell-exit-hook'." (if mode-line-elt (setcar mode-line-elt 'eshell-command-running-string)))) - (define-key eshell-mode-map "\r" 'eshell-send-input) - (define-key eshell-mode-map "\M-\r" 'eshell-queue-input) - (define-key eshell-mode-map [(meta control ?l)] 'eshell-show-output) - (define-key eshell-mode-map [(control ?a)] 'eshell-bol) - - (setq-local eshell-command-prefix (make-symbol "eshell-command-prefix")) - (fset eshell-command-prefix (make-sparse-keymap)) - (setq-local eshell-command-map (symbol-function eshell-command-prefix)) - (define-key eshell-mode-map [(control ?c)] eshell-command-prefix) - - (define-key eshell-command-map [(meta ?o)] 'eshell-mark-output) - (define-key eshell-command-map [(meta ?d)] 'eshell-toggle-direct-send) - - (define-key eshell-command-map [(control ?a)] 'eshell-bol) - (define-key eshell-command-map [(control ?b)] 'eshell-backward-argument) - (define-key eshell-command-map [(control ?e)] 'eshell-show-maximum-output) - (define-key eshell-command-map [(control ?f)] 'eshell-forward-argument) - (define-key eshell-command-map [(control ?m)] 'eshell-copy-old-input) - (define-key eshell-command-map [(control ?o)] 'eshell-kill-output) - (define-key eshell-command-map [(control ?r)] 'eshell-show-output) - (define-key eshell-command-map [(control ?t)] 'eshell-truncate-buffer) - (define-key eshell-command-map [(control ?u)] 'eshell-kill-input) - (define-key eshell-command-map [(control ?w)] 'backward-kill-word) - (define-key eshell-command-map [(control ?y)] 'eshell-repeat-argument) - (setq local-abbrev-table eshell-mode-abbrev-table) (set (make-local-variable 'list-buffers-directory) diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index 32a3eecb52..a6d6aae678 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -109,6 +109,16 @@ information, for example." (defvar eshell-process-list nil "A list of the current status of subprocesses.") +(defvar eshell-proc-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-i") #'eshell-insert-process) + (define-key map (kbd "C-c C-c") #'eshell-interrupt-process) + (define-key map (kbd "C-c C-k") #'eshell-kill-process) + (define-key map (kbd "C-c C-d") #'eshell-send-eof-to-process) + (define-key map (kbd "C-c C-s") #'list-processes) + (define-key map (kbd "C-c C-\\") #'eshell-quit-process) + map)) + ;;; Functions: (defun eshell-kill-process-function (proc status) @@ -121,20 +131,16 @@ PROC and STATUS to functions on the latter." (eshell-reset-after-proc status) (run-hook-with-args 'eshell-kill-hook proc status)) +(define-minor-mode eshell-proc-mode + "Minor mode for the proc eshell module. + +\\{eshell-proc-mode-map}" + :keymap eshell-proc-mode-map) + (defun eshell-proc-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the process handling code." (make-local-variable 'eshell-process-list) - ;; This is supposedly run after enabling esh-mode, when eshell-command-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?i)] 'eshell-insert-process) - (define-key eshell-command-map [(control ?c)] 'eshell-interrupt-process) - (define-key eshell-command-map [(control ?k)] 'eshell-kill-process) - (define-key eshell-command-map [(control ?d)] 'eshell-send-eof-to-process) -; (define-key eshell-command-map [(control ?q)] 'eshell-continue-process) - (define-key eshell-command-map [(control ?s)] 'list-processes) -; (define-key eshell-command-map [(control ?z)] 'eshell-stop-process) - (define-key eshell-command-map [(control ?\\)] 'eshell-quit-process)) + (eshell-proc-mode)) (defun eshell-reset-after-proc (status) "Reset the command input location after a process terminates. diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index b08a5d242f..6ec58464c5 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -197,8 +197,19 @@ function), and the arguments passed to this function would be the list (put 'eshell-variable-aliases-list 'risky-local-variable t) +(defvar eshell-var-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c M-v") #'eshell-insert-envvar) + map)) + ;;; Functions: +(define-minor-mode eshell-var-mode + "Minor mode for the esh-var module. + +\\{eshell-var-mode-map}" + :keymap eshell-var-mode-map) + (defun eshell-var-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the variable handle code." ;; Break the association with our parent's environment. Otherwise, @@ -207,11 +218,6 @@ function), and the arguments passed to this function would be the list (set (make-local-variable 'process-environment) (eshell-copy-environment))) - ;; This is supposedly run after enabling esh-mode, when eshell-command-map - ;; already exists. - (defvar eshell-command-map) - (define-key eshell-command-map [(meta ?v)] 'eshell-insert-envvar) - (set (make-local-variable 'eshell-special-chars-inside-quoting) (append eshell-special-chars-inside-quoting '(?$))) (set (make-local-variable 'eshell-special-chars-outside-quoting) -- 2.22.0 --=-=-=-- From unknown Sun Jun 15 08:53:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22792: eshell-mode-map declaration Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 16 Aug 2019 00:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22792 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Alex Branham Cc: 22792@debbugs.gnu.org Received: via spool by 22792-submit@debbugs.gnu.org id=B22792.156591700631903 (code B ref 22792); Fri, 16 Aug 2019 00:57:01 +0000 Received: (at 22792) by debbugs.gnu.org; 16 Aug 2019 00:56:46 +0000 Received: from localhost ([127.0.0.1]:52740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hyQXu-0008IU-GM for submit@debbugs.gnu.org; Thu, 15 Aug 2019 20:56:46 -0400 Received: from mail-io1-f48.google.com ([209.85.166.48]:44089) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hyQXs-0008I8-Dk; Thu, 15 Aug 2019 20:56:44 -0400 Received: by mail-io1-f48.google.com with SMTP id j4so2989994iop.11; Thu, 15 Aug 2019 17:56:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=TlC1NVJxbj5C8+rGt8Vb/rcu8k5T0CflvFsoZPEbJD4=; b=RhXiAVuaeDKlLK/it0T0Kq+IEc/PsKmZQKdTNt1GA5WMnHIH/CQtEiv+HCQI7Sj6c5 +vqfQgaBDjBENE62wfhe8jmN8nr8k4Hdd96Y75VscWRcHWJqXn3qIZSiqJgJS7Y0IGUC K6cAzxAjdgUA10LLqDNKfhYCeK0BngUBuiKlevxyHqpZIezdq8KGM6ED+zzZjfh/mB4a IBtbK+7LyB6+WmJ1qJWTVGoHAECQZkHf3bLF0y7AFgGklHF1ep3oDDW0qJ/+dQRgjWMI uXgA/jj9rJ5E2sGk592B4CA+FDpaeb3LF/a7qHmXfx/NNdFQ2wqehS+m4p06yNTbXsHj 5Tug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=TlC1NVJxbj5C8+rGt8Vb/rcu8k5T0CflvFsoZPEbJD4=; b=Lqz+/XejWS67aji3xgRb7zsLOejXRUYFgtfvABFmMA2mKGDwgVw5vFegBnOti8r5d3 Dn0+gPVgFr2CD7Jsgr9W8LtV2058NeJ8q2LkKVh9rTpU3mn5OEzn4J/70MQRklZprNAB nPZJrg0bGdIMhT5+Eu9PVJPt8mu9bKZUWMnUllu3fevGJoTQJd8+qgMLgOlDYywk+Cdl wohsRenvDZ4gPkQ1pQMUCLPtAzSwvpe7HSBmkK8HC1PVqpL2w+Gk87ozTTnMQRpmqJzd yTJJ7N0Z0QYyq5ZGl6v7pC2ZyHvYl82MnKMH0NEFaepIh7I18ZgRV4fNlK9JSJDGgwhS 0X3w== X-Gm-Message-State: APjAAAX00k8gS6j64CBnBeUnOtc+HsZk68WWl27M8xLnV9+FaOU7iE8i 60CZDrnD02x8Pc1ku56pawebWLlj X-Google-Smtp-Source: APXvYqwitfx3ihieCSGGuKMHu2DU3rEqjuMXscTlRbUXx286tDtBNJP/8f3tD2zLEoi0iRPqDm5hxQ== X-Received: by 2002:a6b:f002:: with SMTP id w2mr8799858ioc.104.1565916998653; Thu, 15 Aug 2019 17:56:38 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id s3sm4012829iob.49.2019.08.15.17.56.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 15 Aug 2019 17:56:38 -0700 (PDT) From: Noam Postavsky References: <56CDC6D3.1050106@boccaperta.com> <877e976nhx.fsf@gmail.com> <85pnmy6deq.fsf@gmail.com> <87woh5mvb7.fsf@gmail.com> <87v9wf4zss.fsf@gmail.com> <87ftm5uj0y.fsf@gmail.com> Date: Thu, 15 Aug 2019 20:56:37 -0400 In-Reply-To: <87ftm5uj0y.fsf@gmail.com> (Alex Branham's message of "Tue, 13 Aug 2019 11:28:29 -0500") Message-ID: <87lfvuorlm.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) tags 22792 fixed close 22792 27.1 quit Alex Branham writes: > I don't know of a straightforward way to keep those in C-h m since this > uses minor modes, but it's easy enough to add those into the docstring > of the minor mode. Alright, good enough for now, I think. Pushed to master. 1ee0192b79 2019-08-15T20:49:15-04:00 "Fix eshell-mode-map initialization" https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1ee0192b792124663a0a40a729dd83c047d21535 > The more I think about this the more I wonder whether the whole > eshell-module framework should just be moved to minor modes, then we > could just call run-hooks on eshell-modules to set everything up. But > that's a question for a later day I suppose. Agreed on both counts. > * lisp/eshell/esh-mode.el (eshell-mode-map): > (eshell-command-map): Set up normal keymaps and prefix commands rather > than re-initializing them in each eshell buffer > > * lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map): > (eshell-cmpl-mode): > (eshell-cmpl-initialize): > * lisp/eshell/em-hist.el (eshell-hist-mode-map): > (eshell-hist-mode): > (eshell-hist-initialize): > * lisp/eshell/em-pred.el (eshell-pred-mode-map): > (eshell-pred-mode): > (eshell-pred-initialize): > * lisp/eshell/em-prompt.el (eshell-prompt-mode-map): > (eshell-prompt-mode): > (eshell-prompt-initialize): > * lisp/eshell/em-rebind.el (eshell-rebind-mode-map): > (eshell-rebind-mode): > (eshell-rebind-initialize): > * lisp/eshell/esh-arg.el (eshell-arg-mode-map): > (eshell-arg-mode): > (eshell-arg-initialize): > * lisp/eshell/esh-proc.el (eshell-proc-mode-map): > (eshell-proc-mode): > (eshell-proc-initialize): > * lisp/eshell/esh-var.el (eshell-var-mode-map): > (eshell-var-mode): > (eshell-var-initialize): Create a new minor mode with a keymap and > call it in the module initialization function. By the way, the formatting of the ChangeLog entries is bit off here (there shouldn't be a colon between empty entries of the same file). But it's a nice use-case for the new log-edit-fill-entry: I can fix it with just two presses of M-q :) From debbugs-submit-bounces@debbugs.gnu.org Sun May 24 20:28:10 2020 Received: (at control) by debbugs.gnu.org; 25 May 2020 00:28:10 +0000 Received: from localhost ([127.0.0.1]:39105 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jd0yP-0005c8-Nk for submit@debbugs.gnu.org; Sun, 24 May 2020 20:28:09 -0400 Received: from mail-qt1-f182.google.com ([209.85.160.182]:39563) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jd0yO-0005bt-IF; Sun, 24 May 2020 20:28:09 -0400 Received: by mail-qt1-f182.google.com with SMTP id l1so12776247qtp.6; Sun, 24 May 2020 17:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=sox1taBnmCIiJl0rJY4ZCgP573DHrvF0Gg21Q72cZRw=; b=rq8uk8cOWHUfFajGfAhhyk+0097T7k2g+WC9vsdXbfTjhOn5jt78FTQ0Xt+SssYbyT mDE5/30esvaFqG8jW7Z0Vej9Om92MhnZbGDwcK6AjBOtyShQexvxVXQi72Y7Z5T4P8Ll kImHcRoHRWBBQKUIlF70xhHaM5rauh9w0cHqKChOuT2/3PvklGKvUwR/jxMEFLTYoY0z 4pnrZgnGFcQFzTO8FP54ckofHX3I9K9HFvHfXl0YzwRtFrH42Ejr9OEtl3mnV/OyXsv4 pFXth1levTThoCXcJRnIfsOjpuMtO6GpH/Ro96OicoLgrNv7BKkTdxtUwIejkqC9U22/ ebYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=sox1taBnmCIiJl0rJY4ZCgP573DHrvF0Gg21Q72cZRw=; b=KPST/mKS60i32ehp3whuyeQ+VvQLB79WxH19eV1QAlJ0/zE0L/2QsXXRYhegWo1O2n myo1q3exTeASIlkK9vLE1G68m+bCLH4tjUreBudlZvZvNV6mHWF5Swgqjvyiujzo/F9a 8m4XV9XBrm+bzcApVgf/L2F5d/p/tvgDqhgFuL1KCnogsa8GTgLcmRIEs05cGk/Qsnrp k7VUiMpkHDKEBHb21kS+lo5h2C7X4eB0SiiFD6sThw7dBYjNMpdIBNwWA/Fp4HbVzc0v kgBXfrclL2IBMBSuBZnCJc8xCpiDPDvlxLs4y4ghH7eQyQHGJjhaFhSB0reTbQDUu+We Oetg== X-Gm-Message-State: AOAM531pYQ85W1ffUCszivvlin5vxLnMwLJsYx5sJNtfAYuczTRweCF2 GsXE6hWrhT1SdcvUPANRE4CHPP/T X-Google-Smtp-Source: ABdhPJwCvFAIXb/WixcQo3RkOpF83nnYFj9ccrYnEkL7MEH9DZoFjgHs8MD2XcnU1pukUFC0pSosWQ== X-Received: by 2002:ac8:6f55:: with SMTP id n21mr7085808qtv.175.1590366482666; Sun, 24 May 2020 17:28:02 -0700 (PDT) Received: from minid (cbl-45-2-119-47.yyz.frontiernetworks.ca. [45.2.119.47]) by smtp.gmail.com with ESMTPSA id u68sm851506qkf.102.2020.05.24.17.28.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 24 May 2020 17:28:02 -0700 (PDT) From: Noam Postavsky To: Eli Zaretskii Subject: Re: bug#41370: 27.0.91; Eshell and exit-minibuffer References: <875zcui7m4.fsf@gmail.com> <85k116o6n3.fsf@gmail.com> <83v9kq5vpk.fsf@gnu.org> Date: Sun, 24 May 2020 20:28:00 -0400 In-Reply-To: <83v9kq5vpk.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 May 2020 21:04:39 +0300") Message-ID: <874ks4luy7.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control Cc: andremegafone@gmail.com, alex.branham@gmail.com, 41370@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 41370 fixed close 41370 27.1 unarchive 33808 notfixed 33808 27.1 fixed 33808 28.1 quit Eli Zaretskii writes: >> [1: 1ee0192b792]: 2019-08-15 20:49:15 -0400 >> Fix eshell-mode-map initialization >> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1ee0192b792124663a0a40a729dd83c047d21535 >> >> I think that should be reverted from emacs-27, and the patch below can >> fix it for master: > > Agreed, thanks. Done. [2: 478638e470]: 2020-05-24 20:12:30 -0400 Revert "Fix eshell-mode-map initialization" https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=478638e4706716b74de5b1aa3e85c8fd943f17ba [3: b9b8c5e3fa]: 2020-05-24 20:17:40 -0400 Make dedicated keymap and mode for eshell-command (Bug#41370) https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=b9b8c5e3fa71aea719934ce422fb22734590a8b3