mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add zsh extended_history handling for comint.el input ring
* lisp/comint.el (comint-input-ring-file-prefix): New variable (bug#36034). (comint-read-input-ring): Use it. * lisp/shell.el (shell-mode): Set it.
This commit is contained in:
parent
b823300775
commit
f7421039fb
2 changed files with 24 additions and 3 deletions
|
|
@ -249,6 +249,10 @@ to set this in a mode hook, rather than customize the default value."
|
|||
file)
|
||||
:group 'comint)
|
||||
|
||||
(defvar comint-input-ring-file-prefix nil
|
||||
"The prefix to skip when parsing the input ring file.
|
||||
This is useful in Zsh when the extended_history option is on.")
|
||||
|
||||
(defcustom comint-scroll-to-bottom-on-input nil
|
||||
"Controls whether input to interpreter causes window to scroll.
|
||||
If nil, then do not scroll. If t or `all', scroll all windows showing buffer.
|
||||
|
|
@ -987,8 +991,20 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
|
|||
(setq end (match-beginning 0)))
|
||||
(setq start
|
||||
(if (re-search-backward ring-separator nil t)
|
||||
(match-end 0)
|
||||
(point-min)))
|
||||
(progn
|
||||
(when (and comint-input-ring-file-prefix
|
||||
(looking-at
|
||||
comint-input-ring-file-prefix))
|
||||
;; Skip zsh extended_history stamps
|
||||
(goto-char (match-end 0)))
|
||||
(match-end 0))
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(when (and comint-input-ring-file-prefix
|
||||
(looking-at
|
||||
comint-input-ring-file-prefix))
|
||||
(goto-char (match-end 0)))
|
||||
(point))))
|
||||
(setq history (buffer-substring start end))
|
||||
(goto-char start)
|
||||
(when (and (not (string-match history-ignore history))
|
||||
|
|
|
|||
|
|
@ -619,7 +619,12 @@ buffer."
|
|||
;; Bypass a bug in certain versions of bash.
|
||||
(when (string-equal shell "bash")
|
||||
(add-hook 'comint-preoutput-filter-functions
|
||||
#'shell-filter-ctrl-a-ctrl-b nil t)))
|
||||
#'shell-filter-ctrl-a-ctrl-b nil t))
|
||||
|
||||
;; Skip extended history for zsh.
|
||||
(when (string-equal shell "zsh")
|
||||
(setq-local comint-input-ring-file-prefix
|
||||
": [[:digit:]]+:[[:digit:]]+;")))
|
||||
(comint-read-input-ring t)))
|
||||
|
||||
(defun shell-apply-ansi-color (beg end face)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue