vim:一日中ファイルに適用されたすべての変更を追跡する方法

vim:一日中ファイルに適用されたすべての変更を追跡する方法

日中にファイルに適用されたすべての変更を追跡できるようにvim(テキストエディタ)を設定する方法を知っている人はいますか?誤ってサブルーチンを修正して初期状態(1日の開始など)に戻したい場合に必要です。

私は通常svnを使用して、最新バージョンのソースコードをグローバルリポジトリに保存します。しかし、時には2つのsvnコミット間のコード状態に戻る必要があるかもしれません。

修正する:

〜できるようにする継続的な取り消したとえば、元に戻すディレクトリを作成します~/.vim/undodir次の設定.vimrcファイルを入力してください:

set undodir=~/.vim/undodir
set undofile
set undolevels=1000
set undoreload=10000

答え1

値が十分に大きい場合、'undolevel'Vimは1日の変更を取り消すことができるはずです。 Vimを途中で終了する場合は、Vimも有効にする必要があります。継続的な取り消しオプションを設定して'undofile'

Vimは元に戻すコマンドの順次リストだけでなく、実際にすべての変更のツリーをキャプチャします。また、元に戻す(cp。:help undo-branches)のためのいくつかのコマンドがあります。

:earlier 12h

良い候補です。

同様のプラグインがあります群島そして元に戻すツリー、元に戻すツリーを視覚化し、ナビゲーションを許可します。

元に戻すツリーをナビゲートするのが面倒すぎる場合(たとえば、一日中多くの変更があるため)、私のような軽いバージョン管理システム(Subversionに加えて)を追加することもできます。バックアッププラグインの作成、特定の時間にバックアップを明示的に作成します。

答え2

長年、私は編集vi中のファイルを保存するためにスクリプトラッパーを使用してきました。あまりにも多くのバックアップファイルを取得しないように、最大​​1日1回これを行います。

以下は私が使用するスクリプトの簡単なバージョンです。おそらく皆さんにも効果があるでしょう。以下を実行する代わりに(バックアップとともにvi)をvi実行できます。vib

vib() {
    local DATE=$(date +'%Y-%m-%d') FILE BACK
    for FILE in "$@"
    do
        BACK="$FILE.$DATE"
        test ! -f "$BACK" && cp -p "$FILE" "$BACK"
    done
    vi "$@"
    for FILE in "$@"
    do
        BACK="$FILE.$DATE"
        cmp -s "$FILE" "$BACK" && rm -f "$BACK"
    done
}

これは.bash_profile関数宣言に配置または削除し、実行可能ファイルに配置できます。/usr/local/bin/vib

関連情報