如何限制 Emacs 中缓冲区的大小?

Dan*_*iel 5 emacs

有什么方法可以限制 Emacs 中缓冲区的大小吗?已经检查过这个问题:Can I limit the length of thepiling buffer in Emacs? 但这不是我想要的。我想限制用户正在处理的缓冲区的大小,因此他不能放置超过预定义大小的内容。

sli*_*nov 4

示例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