有什么方法可以限制 Emacs 中缓冲区的大小吗?已经检查过这个问题:Can I limit the length of thepiling buffer in Emacs? 但这不是我想要的。我想限制用户正在处理的缓冲区的大小,因此他不能放置超过预定义大小的内容。
示例message-mode(将缓冲区置于此模式类型M-x message-mode)
(define-key message-mode-map [remap self-insert-command]
'(lambda ()
(interactive)
(let ((limit-buffer-size 30))
(message "buffer-size is %i of %i" (buffer-size) limit-buffer-size)
(if (< (buffer-size) limit-buffer-size)
(call-interactively 'self-insert-command)
(message "Maximum bufer size is %i characters" limit-buffer-size)))))
Run Code Online (Sandbox Code Playgroud)
请注意,用户仍然可以输入yank更多字符。另一种选择是重新映射save-buffer。