mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Added shell-truncate-buffer function to restrict buffer size to
at most shell-buffer-maximum-size lines in length.
This commit is contained in:
parent
81fb2771d9
commit
8079b5901c
@ -156,6 +156,10 @@ This mirrors the optional behavior of tcsh.
|
||||
|
||||
Detecting executability of files may slow command completion considerably.")
|
||||
|
||||
(defvar shell-buffer-maximum-size 1024
|
||||
"*The maximum size in lines for shell buffers.
|
||||
Shell buffers are truncated from the top to be no greater than this number.")
|
||||
|
||||
(defvar shell-popd-regexp "popd"
|
||||
"*Regexp to match subshell commands equivalent to popd.")
|
||||
|
||||
@ -249,10 +253,10 @@ Thus, this does not include the shell's current directory.")
|
||||
|
||||
(defun shell-mode ()
|
||||
"Major mode for interacting with an inferior shell.
|
||||
Return after the end of the process' output sends the text from the
|
||||
end of process to the end of the current line.
|
||||
Return before end of process output copies the current line (except
|
||||
for the prompt) to the end of the buffer and sends it.
|
||||
\\[comint-send-input] after the end of the process' output sends the text from
|
||||
the end of process to the end of the current line.
|
||||
\\[comint-send-input] before end of process output copies the current line minus the prompt to
|
||||
the end of the buffer and sends it (\\[comint-copy-old-input] just copies the current line).
|
||||
\\[send-invisible] reads a line of text without echoing it, and sends it to
|
||||
the shell. This is useful for entering passwords. Or, add the function
|
||||
`comint-watch-for-password-prompt' to `comint-output-filter-functions'.
|
||||
@ -260,6 +264,9 @@ Return before end of process output copies the current line (except
|
||||
If you want to make multiple shell buffers, rename the `*shell*' buffer
|
||||
using \\[rename-buffer] or \\[rename-uniquely] and start a new shell.
|
||||
|
||||
If you want to make shell buffers limited in length, add the function
|
||||
`shell-truncate-buffer' to `comint-output-filter-functions'.
|
||||
|
||||
If you accidentally suspend your process, use \\[comint-continue-subjob]
|
||||
to continue it.
|
||||
|
||||
@ -624,6 +631,14 @@ command again."
|
||||
(setq ds (cdr ds))))
|
||||
(message msg)))
|
||||
|
||||
(defun shell-truncate-buffer (string)
|
||||
"Truncate the buffer to `shell-buffer-maximum-size'."
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(forward-line (- shell-buffer-maximum-size))
|
||||
(beginning-of-line)
|
||||
(delete-region (point-min) (point))))
|
||||
|
||||
(defun shell-forward-command (&optional arg)
|
||||
"Move forward across ARG shell command(s). Does not cross lines.
|
||||
See `shell-command-regexp'."
|
||||
|
Loading…
Reference in New Issue
Block a user