有什么方法可以限制 Emacs 中缓冲区的大小?已经检查过这个问题:我可以限制 Emacs 中编译缓冲区的长度吗?但这不是我想要的。我想限制用户正在处理的缓冲区的大小,所以他不能放超过预定义的大小。
问问题
920 次
2 回答
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)))))
请注意,用户仍然可以使用yank
更多字符。另一种选择是重新映射save-buffer
.
于 2012-07-22T19:26:00.493 回答
3
我看不到任何直接访问它的方法,你可以做的是:pre-command-hook
如果命令是一个钩子,self-insert-command
你可以检查它buffer-size
是否低于你想要的长度。或者,您可以挂钩post-self-insert-hook
以检查是否达到大小限制,撤消它并打印一条消息。对于所有这些,您将需要编写一个minor-mode
在缓冲区中处于活动状态的内容。
于 2012-07-22T17:34:58.393 回答