2012-07-22 96 views

回答

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

3

我看不到任何方式直接訪問它,你可以做的是:hook pre-command-hook如果命令是self-insert-command你可以檢查buffer-size是否在你想要的長度以下。或者,您可以掛鉤post-self-insert-hook以檢查命中大小限制,撤消它並打印消息。對於所有這些,您需要編寫一個在您的緩衝區中處於活動狀態的minor-mode