SORU
2 Aralık 2010, PERŞEMBE


Vim takas yedekleme/dosya geri alma/değiştirme

Yol Vim isimlerini değiştirmek için olası takas yedekleme dosyaları geri al/mı?

Yığılmayı önlemek için, hazır seçenekleri benim ~/.vimrc dökümü bu dosyaları ~/.vim/tmp/{swap,backup,undo}; ancak, ben rutin düzenlemek dosyaları farklı dizinlere ile aynı adı, sık sık sonunda birlikte bir sürü başka ayırt dosyaları ve Vim bazen sorun düzeliyor.

İdeal olarak, ben bir şey kullanmak için adlandırma şeması olan kalıcı undo (%path%to%file.undo) Tüm bu yardımcı dosyaları; yok bariz şekilde ayarlanmış, ama yapılabilir Buf{Read,Write} makrolar?

CEVAP
2 Mart 2012, Cuma


İşte ** 5 github benim parçası.

Bu undodir (ve tahrik), setler backupdir directory (.swp dosyaları için kullanılır) ayarlar. Eğer zaten yok diye dizinler oluşturur unutmayın.

" Save your backups to a less annoying place than the current directory.
" If you have .vim-backup in the current directory, it'll use that.
" Otherwise it saves it to ~/.vim/backup or . if all else fails.
if isdirectory($HOME . '/.vim/backup') == 0
  :silent !mkdir -p ~/.vim/backup >/dev/null 2>&1
endif
set backupdir-=.
set backupdir =.
set backupdir-=~/
set backupdir^=~/.vim/backup/
set backupdir^=./.vim-backup/
set backup

" Save your swp files to a less annoying place than the current directory.
" If you have .vim-swap in the current directory, it'll use that.
" Otherwise it saves it to ~/.vim/swap, ~/tmp or .
if isdirectory($HOME . '/.vim/swap') == 0
  :silent !mkdir -p ~/.vim/swap >/dev/null 2>&1
endif
set directory=./.vim-swap//
set directory =~/.vim/swap//
set directory =~/tmp//
set directory =.

" viminfo stores the the state of your previous editing session
set viminfo =n~/.vim/viminfo

if exists(" undofile")
  " undofile - This allows you to use undos after exiting and restarting
  " This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
  " :help undo-persistence
  " This is only present in 7.3 
  if isdirectory($HOME . '/.vim/undo') == 0
    :silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
  endif
  set undodir=./.vim-undo//
  set undodir =~/.vim/undo//
  set undofile
endif

Umarım yeterince ne olduğunu anlamak için yorumladı. Değilse, bir yorum eklemek ve bunu düzelteceğim.

Ciao!

Güncelleme [07/16/2012]

Rob İnek ve bir e-posta cevap için herkes için istediğim backupdir bölüm hakkında sorular sorup aldım:

  1. geçerli dizin kaldırma ve sonra yeniden ekleme gibi görünüyor. bu ne işe yarıyor?
  2. ^= operatörü ne iş yapar?
  3. nasıl klasörleri kullanımında öncelik sırasına göre, iş kontrol vim? (sanki denetler son klasörü ilk kişi eklenir?)

İlk şey farklı operatörleri tanımlamak için. Bu operatörler olmayan dize-liste seçenekleri için farklı bir anlamı var, o yüzden dikkatli ol!

  • -= string listesinden değeri kaldırır.
  • .= dize listesine değeri ekler.
  • ^= dize listesine değeri başa.

backupdir aşağıdaki işlemler uygulanmıştır:

  1. Listeden geçerli dizini Kaldır.
  2. Liste için geçerli dizin (bu son şey kontrol sağlar) ekleyin.
  3. Listeden ev dizini (oradan kurtardı olmayı sevmiyorum çıkarın.
  4. ~/.vim/backup/ önüne
  5. ~/.vim-backup/ önüne

Ne zaman vim görünüyor için nereye kaydetmek yedekleri, denetleme, ilk, son; bu Yüzden olacak kontrol için ~/.vim-backup/, daha sonra kontrol için ~/.vim/backup, sonra kontrol varsayılan listesi (hariç için . ~/ kaldırıldı), sonra kontrol .

Kullanarak (örneğin) :help ^= :help backupdir vim tüm bunlar için yardım alabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • maxman.tv

    maxman.tv

    29 EKİM 2013
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006