ファイルを訪問していないバッファーの自動保存


7

私はしばしば次のようなことをします:

Cx b foobarbaz RET

メモを取るための新しいバッファーを取得するなど。emacsがスナップショットを作成して、開いているすべてのバッファーをディスクに時々ダンプするのが好きです。自動保存機能とバックアップ機能を改善するためのドキュメントはたくさんありますが、それらはすべて、現在ファイルにアクセスしているバッファに関連しています。

emacsで定期的にすべてのバッファをスナップショット/ディスクに保存してください。これは確かにいくつかのノイズの多い「出力」バッファをディスクに書き込む原因になりますが、誰が気にするのですか?ディスク容量は安いです。

これを行うために組み込まれているものはありますか?現在、私のコンピューター(またはemacs)がクラッシュした場合、さまざまなバッファーで取得した多くのメモが失われることがよくあります。


save-some-buffersファイルを訪問しないバッファのオプションがあります-おそらく、それsave-some-buffersをタイマーと引数として受け入れるカスタム関数と組み合わせることができます-doc-stringを参照してください。これを実行するものはおそらくすでにあるでしょう-例えば、Google "save-some-buffers" auto saveなど。そして、いくつかのアイデアのために機能auto-save-modeを見てくださいsimple.el。私の記憶はつまり、オートセーブ・バッファ・強化を している可能性があり:このような何かに行わ github.com/kentaro/auto-save-buffers-enhanced/blob/master/...
lawlist

どのOSを使用していて、emacsのバージョンは何ですか?私はRHEL 5.10とemacsの25(gitのからのdevのバージョン)上と私は24.4以来、おそらくこれまで、一度クラッシュemacsのを覚えていません...
Kaushalモディ

1
自動保存の簡単なメモを取るために、deftパッケージをお勧めします。
Kaushal Modi

巧みにチェックアウトします-素晴らしいですね。
Chris Clark、

回答:


6

これは提示された質問に対する回答ではないので、無視したり、反対票を投じたりしてください。

  1. Emacsがすべてのバッファー(通常は非表示の内部バッファーを含む)をディスクに保存することを本当に望んでいるのではないでしょうか。なぜあなたはそれをしたいですか?

  2. ディスク容量についてではありません。それはノイズについてです。重要なファイルがそのようなものと混在する可能性があるディレクトリから、本当にものを掘り出しますか?または、一時的なディレクトリで一時的な真珠を釣りたいですか?

  3. *...*(スペース文字で始まっていない)などの名前を持つバッファは、通常、出力専用(たとえば*info*)または一時的な対話(たとえば*scratch*)のためのものです。そのようなバッファーの場合、私は、物事をそのままにすることをお勧めします。C-x C-w本当に必要な場合は、そのようなバッファーをいつでもオンデマンドで保存できます。

  4. これは私があなたの本当のユースケースであると私に思わせるものです:「メモを取るためのバッファ[s]など」ここでの答えは、のC-x C-f代わりに使用することですC-x b。IOW、はい、ファイルバッファとしてアクセスします。バッファを保存しない場合、自動保存ファイルを除いて、ファイルは作成されません。これは、おそらく必要なだけの自動保存ファイルです。

    バッファをファイルバッファとして訪問すると、デフォルトで使用されるメジャーモードを自動的に制御します(を使用auto-mode-alist)。これは、コードのプログラミングと同じくらい重要です。

    特に、*scratch*一時的なLispインタラクションに使用する場合は、再考することをお勧めします。多くのユーザー(私を含む)は、代わりにC-x C-f foo.el(またはその他の*.elファイル名)を使用すると役立つことに気づきました。1つの理由は、自動保存ファイル(およびバッファーを保存する場合はバックアップファイル)を無料で取得できることです。もう1つの理由は、Lisp対話モードではなくEmacs-Lispモードを取得することです。3番目の理由は、「はい」、「一時的な」作業を保存したいということです。そして、あなたが言うように、ディスクスペースは安いです。

#4が私が#1で言ったことと矛盾するのはどうですか?一時的な落書きのファイルを重要なファイルと混在させたくはありません。また、一時的なディレクトリから一時的な真珠を取り出したくありません。ここでの答えは、この影響を最小限に抑えるために物事を整理するのはあなた次第であるということです。特定のディレクトリでこのようなスクラッチファイルを操作すると、そのようなファイルを区別するのに役立つ命名規則(特に接頭辞)を使用できるので役立ちます。

役立つもう1つのこと:Dired~および#を使用して、バックアップファイルと自動保存ファイルに削除のマークを付けることができます(その後x、それらを削除します)。また、おそらく一時的なスクラッチファイルに命名規則を使用している場合は、などを使用して、%それらすべてに削除のマークを付けることができます。関数を定期的に実行して、そのようなファイルを削除することもできます。また、本当に長く使いたいものは簡単に名前を変更できます。

ですから、私のアドバイスは、そのような一時的なメモを取るバッファとどのようにやり取りしているのかを再考することです。自動保存されるファイルバッファの使用を検討してください。つまり、の代わりにC-x C-f foobarbaz.txt RET(または.elその他)を使用しC-x b foobarbaz RETます。


1
前の段落の「C-x C-fまとめて使う」の代わりに「まとめて使う」という意味だったと思いますC-x b。(この変更は6文字未満なので、直接編集を提案することはできません。)
YoungFrog、2015

1
過去数週間、代わりにCx Cfの習慣を身につけようとしましたが、かなりうまくいきました。ブックマークとHelmをより効果的に使用することで、ノートディレクトリに移動して、新しいスクラッチファイルを非常にすばやく作成できます。私はYeggeの効果的なemacsのヒント#5を介して元のCx b <gibberish>の習慣を身につけましたが、バッファが動かなくなる可能性がある場合は、適切なファイルを使用する習慣をつけるのは正しいと思います。ありがとう!
Chris Clark、

1
それが助けてうれしい。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.