我有vim的商城我的交換文件在一個單一的本地目錄,在我的.vimrc有這樣的:
set directory=~/.vim/swap,.
除了其它的優點,這使得交換文件容易找到的一次。 現在,當我的筆記本電腦斷電或什麼,我開始背了一堆的交換文件奠定左右,我只是跑我cleanswap
腳本:
TMPDIR=$(mktemp -d) || exit 1
RECTXT="$TMPDIR/vim.recovery.$USER.txt"
RECFN="$TMPDIR/vim.recovery.$USER.fn"
trap 'rm -f "$RECTXT" "$RECFN"; rmdir "$TMPDIR"' 0 1 2 3 15
for q in ~/.vim/swap/.*sw? ~/.vim/swap/*; do
[[ -f $q ]] || continue
rm -f "$RECTXT" "$RECFN"
vim -X -r "$q" \
-c "w! $RECTXT" \
-c "let fn=expand('%')" \
-c "new $RECFN" \
-c "exec setline(1, fn)" \
-c w\! \
-c "qa"
if [[ ! -f $RECFN ]]; then
echo "nothing to recover from $q"
rm -f "$q"
continue
fi
CRNT="$(cat $RECFN)"
if diff --strip-trailing-cr --brief "$CRNT" "$RECTXT"; then
echo "removing redundant $q"
echo " for $CRNT"
rm -f "$q"
else
echo $q contains changes
vim -n -d "$CRNT" "$RECTXT"
rm -i "$q" || exit
fi
done
這將刪除是跟上時代的任何交換文件與真實的文件。任何不匹配的東西都會出現在vimdiff窗口中,以便我可以合併未保存的更改。
--Chouser
請訪問http:// valmikam。 blogspot.com/2010/09/vim-auto-backup-configuration.html以獲得可複製的解決方案。 – 2011-08-28 01:03:34