9

時々、CxまたはCcをヒットするつもりだったときに、Emacsで誤ってCxCcをヒットしました。もちろん、これは確認なしで開いているすべてのフレームとバッファを閉じます。Emacsに「本当に終了してもよろしいですか?」というプロンプトを表示させることができることは知っていますが、いつもそうすることはしたくないので、煩わしくなります。N個を超えるファイル(またはバッファー)が開いているときに実行したいだけです。

したがって、CxCcを次の行に沿った関数にバインドしたいと思います。

(if (< number of open buffers n)
    (save-buffers-kill-emacs)
    (are-you-sure))

しかし、開いているバッファの数(または開いているフレームの数、開いているファイルの数など)を取得する方法がわかりません。

4

2 に答える 2

9

これは私が使用するものです:

(defun count-buffers (&optional display-anyway)
  "Display or return the number of buffers."
  (interactive)
  (let ((buf-count (length (buffer-list))))
    (if (or (interactive-p) display-anyway)
    (message "%d buffers in this Emacs" buf-count)) buf-count))

私はそれを盗んだ、しかしどこから思い出せない。魅力的な仲間のように聞こえるジョン・スターディから。彼のウェブサイトから入手できます。

于 2008-12-08T19:40:23.910 に答える
4

また、Emacs を再起動したときにバッファを自動的に復元するデスクトップ モードの使用を検討することもできます。追加するだけ

(desktop-save-mode 1)

あなたに.emacsGNU Emacs マニュアルまたはEmacswikiを参照してください。

于 2008-12-08T21:08:12.280 に答える