4

Emacs でバッファのサイズを制限する方法はありますか? すでにこの質問をチェックしています: Emacsでコンパイルバッファの長さを制限できますか? しかし、それは私が望むものではありません。ユーザーが作業しているバッファーのサイズを制限したいので、事前に定義されたサイズを超えることはできません。

4

2 に答える 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です。コマンドがa である場合は、フックして、必要な長さ以下であるself-insert-commandかどうかを確認できます。buffer-sizeまたは、フックpost-self-insert-hookしてサイズ制限に達したかどうかを確認し、元に戻してメッセージを出力することもできます。このすべてのためminor-modeに、バッファ内でアクティブな を記述する必要があります。

于 2012-07-22T17:34:58.393 に答える