2012-05-10 41 views
4

Eclipseの変更履歴やGoogleドキュメントの編集履歴に似た、編集中のファイルの定期的なスナップショット(1分に1回、x回のキーストロークなど)を実行するEmacs拡張機能はありますかその他のプログラム?Emacsファイルの編集履歴

私は、私が日々行った変更を簡単にナビゲートできるようにしたいと思っています。既に書かれているようなものはありますか?

編集

私はより具体的にする必要があり - 私はVCSを探していませんよ。私はマイナーモードを探しています。あるいは、私がちょうどスイッチをオンにして、リビジョンをディスクにハードコピーしています。

+2

Subversionやgitなどのバージョンコントロールシステムに興味があるかもしれません。 – choroba

+1

あなたはVCSを探しているわけではありませんが、変更したものを簡単にナビゲートできるものを探しています毎日作られた "。真剣に - それはVCSです。より良い解決策を見つけることはできません。 – phils

+0

@phils - つまり、私はVCSに依存しなければならないということです。私は「より良い」解決策を望んでいません。私は自分の.emacsファイルに入れておくことができます。編集履歴以外のVCSの機能は必要ありません。 – dfb

答えて

5

Nキーストローク後に保存するオートセーブ機能があります(M秒後にはわかりません)。 Emacsがクラッシュした場合、私が編集した内容を見るのではなく、一般的にこれを使用します。元に戻すとより良い結果が得られます。ここに私の設定があります:

保存するたびにコピーを作成するバックアップシステムもあります(自動保存ではありません)。私はこれをあなたが求めていると思っているものに使っています。最後のVCSコミット以来の歴史を見ています。ここに私の設定です:

(setq make-backup-files t 
     vc-make-backup-files t 
     version-control t 
     kept-new-versions 256 
     kept-old-versions 0 
     delete-old-versions t 
     backup-by-copying t) 
(setq backup-dir (concat user-emacs-directory "backup/")) 
(if (not (file-exists-p backup-dir)) 
    (make-directory backup-dir)) 
(add-to-list 'backup-directory-alist 
      `(".*" . ,backup-dir)) 
(defun force-backup-of-buffer() 
    (setq buffer-backed-up nil)) 
(add-hook 'before-save-hook 'force-backup-of-buffer) 
;; this is what tramp uses 
(setq tramp-backup-directory-alist backup-directory-alist) 

(add-to-path "backup-walker") 
(autoload 'backup-walker-start "backup-walker" 
    "start walking with the latest backup" t) 

私はバックアップをナビゲートするために優れたbackup-walkerを使用しています。

+0

これはまさに私が探していたタイプのものです。ありがとうございました – dfb

+0

バックアップウォーカーに感謝します。非常に便利に見えます。今はバックアップウォーカーとgit-timemachineを組み合わせるだけです:) –

4

変更を本当に重視している場合は、gitの使用を開始することを強くお勧めします。それはあなたの窓やLinuxコーディング環境でうまくいくでしょう。私は、コードからの変更を前後に移植するために使用します。これは、小さな行の終わりをすべて修正し、変更をマージする素晴らしい仕事をします。

古いバージョンを残したいだけなら、emacsは保存するたびに新しいバックアップを作成できます。現在のファイルの隣に別のファイルが作成されます。これにより、新しいバックアップを作成する頻度を制御できます(保存するたびに)。

ここでのオプションについて語っ良いページだ:

ftp://ftp.gnu.org/pub/old-gnu/Manuals/emacs-20.7/html_chapter/emacs_18.html#SEC109

+0

+1 - 番号の付いたバックアップについて知らなかった – dfb

+0

実際のバージョン管理システムは間違いなく道のりです。 –

+0

@NicolasDudeboutこれはgitに加えて、コミットとコミットの間にあります。 Intellijにはこの機能があり、私にとってはライブセーバーでした。私は本当のemacsネイティブソリューションを作るつもりです。 – qbert65536

3

私はこのために見つけた最良の解決策は、vimのためのgundoへのEmacsと同等であるundo-tree、次のとおりです。それはあなたが/アンドゥの木を視覚化やり直し、変更内容をナビゲートし、異なるバージョン間を行き来することができます。

undo-tree ELPAを使用してインストールできます。それがインストールされると、.emacsに以下を追加してください - XUundo-tree-visualize

(require 'undo-tree) 
(global-undo-tree-mode) 

アンドゥツリーは、次にCtrlキーを用いて可視化することができます。異なる「バージョン」は、矢印キーを使用して非常に直観的な方法でナビゲートすることができます。

undo-tree-save-historyを使用して履歴を永続化することもできます。

関連する問題