Make eshell-next-prompt more reliable (Bug#27405)
* lisp/eshell/em-prompt.el (eshell-next-prompt): Search for `eshell-prompt-regexp' (and `read-only' text-property if `eshell-highlight-prompt' is set) rather than trying to use `forward-paragraph'. (eshell-previous-prompt): Don't count prompt on current line.
This commit is contained in:
parent
ffde1e9b9e
commit
7a0ca227af
1 changed files with 13 additions and 2 deletions
|
|
@ -161,14 +161,25 @@ If N is negative, find the previous or Nth previous match."
|
|||
"Move to end of Nth next prompt in the buffer.
|
||||
See `eshell-prompt-regexp'."
|
||||
(interactive "p")
|
||||
(forward-paragraph n)
|
||||
(if eshell-highlight-prompt
|
||||
(progn
|
||||
(while (< n 0)
|
||||
(while (and (re-search-backward eshell-prompt-regexp nil t)
|
||||
(not (get-text-property (match-beginning 0) 'read-only))))
|
||||
(setq n (1+ n)))
|
||||
(while (> n 0)
|
||||
(while (and (re-search-forward eshell-prompt-regexp nil t)
|
||||
(not (get-text-property (match-beginning 0) 'read-only))))
|
||||
(setq n (1- n))))
|
||||
(re-search-forward eshell-prompt-regexp nil t n))
|
||||
(eshell-skip-prompt))
|
||||
|
||||
(defun eshell-previous-prompt (n)
|
||||
"Move to end of Nth previous prompt in the buffer.
|
||||
See `eshell-prompt-regexp'."
|
||||
(interactive "p")
|
||||
(eshell-next-prompt (- (1+ n))))
|
||||
(beginning-of-line) ; Don't count prompt on current line.
|
||||
(eshell-next-prompt (- n)))
|
||||
|
||||
(defun eshell-skip-prompt ()
|
||||
"Skip past the text matching regexp `eshell-prompt-regexp'.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue