Vim otomatik kaydediyor mu?


13

Gönderen :help swap-file:

Takas dosyasını güncelleme

Takas dosyası, 200 karakter yazıldıktan sonra veya dört saniye boyunca hiçbir şey yazmadığınızda güncellenir. Bu yalnızca arabellek değiştirildiyse olur, yalnızca hareket ettiğinizde değil. Her zaman güncel tutulmamasının nedeni, bunun normal çalışmayı çok yavaşlatmasıdır. 200 karakter sayısını 'updatecount' seçeneğiyle değiştirebilirsiniz. Saati 'updatetime' seçeneğiyle ayarlayabilirsiniz. Zaman milisaniye olarak verilir. Takas dosyasına yazdıktan sonra Vim dosyayı diske senkronize eder. Bu, özellikle yoğun Unix sistemlerinde biraz zaman alır. Bunu istemiyorsanız, 'swapsync' seçeneğini boş bir dizeye ayarlayabilirsiniz. Yine de iş kaybetme riski artar. Bazı Unix olmayan sistemlerde (MS-DOS, Amiga) takas dosyası hiç yazılmaz.

Bundan birkaç sorum var:

  1. Bu, Vim'in zaman zaman çalışmanızı otomatik olarak kaydettiği anlamına mı geliyor?

  2. "Takas dosyasına yazdıktan sonra Vim dosyayı diske senkronize eder." Ne anlama geliyor? Bu, önce belleğe, sonra diske yazılan dosyayı mı ifade ediyor yoksa başka bir şey mi?

  3. Sınıf notları aldığımı söyle: Hızlı yazıyorum ve Ekle modundan çıkmam için çok az ihtiyacım var. Ama çoğu zaman sadece işimi kurtarmak için Normal'e geçiyorum. Bunu yapmam gerekir mi yoksa Vim, Ekle modundan çıkmasam bile işimin çoğunun kaydedildiğinden emin mi?

Yanıtlar:


9
  1. Evet, dosya değiştirmeyi kaydeder.

Bir almak için hızlı bir test yapabilirsiniz his bu. Bir dizine gidin. vim notest.txtBazı metinler söyleyin ve yazın. Dosyayı kaydetmeniz bile gerekmez.

Çalışma dizinindeki dosyaları listelerseniz, bir takas dosyası bulacaksınız. Farklı bir dizine kopyalayın (örneğin, "notes.txt" dosyanız yoktur) vim notest.txt.

Mevcut takas, değiştiriliyor ve salt okunur olarak aç, kurtar vb seçenekleri hakkında bir not alırsınız. Kurtar ve voila'yı seçin! Dosyanızın "kopyası".

  1. Evet, takas bellekte tutulur.

Vim bir dosyayı okuduğunda RAM'e ekler. Bu hem mevcut hem de yeni (hala kaydedilmemiş dosyalar) içindir. Takas kaydedildikçe diske temizlenir. HDD. RAM'den.

  1. Evet ve hayır.

Varsayılan ayarları ile en çalışmanızın kaydedilir. Bu, girilen her 200 karakter için veya 4 saniyelik bir duraklama olduğunda. Ben rağmen güven kaydedilmesini takas dosyası, ben gibi ben kararsız bir sistem üzerinde olduğumu bile bile işimi kaydedin. Ancak, çok şanssız olmadıkça ve barındırma sistemi çok önemli bir cümle yazdıktan hemen sonra paniğe kapılmadıkça, işi devam ettirmek için oldukça kesindir .

Kısacası ders bittiğinde tasarruf etmek yeterlidir. Sistem bir sınıfın ortasında herhangi bir sebepten dolayı durursa, iş takasta olana kadar devam eder.

Tabii ki: Çok şanssızsanız takas dosyası yazılırken bir çökme meydana gelebilir. Gibi bir sonuç takas dosyası olabilir bozulmuş. Bunu hiç yaşamadım ve dosyanın hangi bölümlerinin dağıtılabileceğinden emin değilim, ama düşünmeye değer olabilir. Takas dosyası ikili olduğundan (daha iyi bir kelime olmaması), düz bir metin dosyasından daha kırılgan olmasına neden olur.


Yan not olarak. En azından takas için çalışma dizini kullanılırken, takas dosyası kurtarma söz konusu olduğunda konum agnostiktir. Bunun gibi yapabilirsiniz kopyalamak yeni bir konuma takas dosyası ve kurtarmak bir dosyayı yeni dosyaya. Yalnızca dosya adının değiş tokuşa sabit olarak kodlandığını unutmayın. Böyle söyleyemezsiniz:

cp .foo.txt.swp .bar.txt.swp

ve

vim bar.txt

ve swap dosyasını bekliyoruz foo.txt.

Eğer varsa çok ilgi sen (* nix üzerine) yapabilirsiniz:

xxd -s 108 -l 800 -ps .foo.txt.swp | xxd -r -p

orijinal dosyanın yolunu (bazı tuhaflıklar ile) almak için. Tam yolun eklendiğini göreceğiniz gibi, örneğin:

~user/blah/blah/notes.txt

ancak takas denetiminde yalnızca taban adı kullanılır.

Bu bağlamda vim -r, geçerli ve alt dizinlerdeki takas dosyalarını listeleyen seçeneğe de göz atabilirsiniz . Bkz :h crash-recoveryalt konular ile.


0

Benim için metin değiştiğinde arabelleği kaydetmek iyi olur:

autocmd TextChanged,TextChangedI <buffer> silent write

Burada buldum . Benim için çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.