अस्थायी फ़ाइलों को बनाने (और छोड़ने) से विम को कैसे रोकें?


163

Vim <filename>~फाइल क्यों बनाता है? वहाँ एक तरीका है कि अक्षम है?

यदि यह बैकअप (या कुछ) के लिए है, तो मैं इसके लिए git का उपयोग करता हूं।

साथ ही, ये .<filename.with.path.hints>.swpफाइलें भी।

मैं कैसे विम को उन बनाने के लिए, या कम से कम खुद के बाद सफाई करने के लिए नहीं कहता हूं?

संपादित करें

वूप्स, डुप्लिकेट:

Vim फ़ाइलों को ~ एक्सटेंशन के साथ क्यों सहेजता है?

मैंने वहां से रोजीरोपवेल का जवाब अपनाया ।

शब्दशः प्रतिलिपि

set nobackup       "no backup files
set nowritebackup  "only in case you don't want a backup file while editing
set noswapfile     "no swap files

13
Git आपको सिस्टम क्रैश के बाद काम को ठीक करने में कभी मदद नहीं करेगा। Git आपकी * .swp फ़ाइलों को भी अनदेखा कर सकता है। = डी
vmassuchetto



lol क्या किसी ने इस प्रश्न को पोस्ट करने के छह साल बाद नकल के रूप में गंभीरता से चिह्नित किया?
hasen

जवाबों:


79

मैं जोर से स्वैप फ़ाइलों के साथ काम करने की सलाह दूंगा (यदि विम क्रैश हो तो)।

आप वह निर्देशिका सेट कर सकते हैं जहाँ स्वैप फ़ाइलें संग्रहीत हैं, इसलिए वे आपकी सामान्य निर्देशिकाओं को अव्यवस्थित नहीं करते हैं:

set swapfile
set dir=~/tmp

यह सभी देखें

:help swap-file

4
ठीक है, मुझे नोटपैड ++ वाले लोगों की ज़रूरत नहीं थी, जब तक आप यह नहीं कहते कि विम अक्सर दुर्घटनाग्रस्त हो जाएगा!
hasen

8
नहीं, मैं नहीं कह रहा था कि विम बहुत बार दुर्घटनाग्रस्त हो जाता है (हालाँकि मैंने इसे दुर्घटनाग्रस्त देखा है)। लेकिन मेरे काम के माहौल के लिए, कुछ होस्ट जो मैं काम कर रहा हूं, उनका नेटवर्क कनेक्शन काफी अस्थिर है, इसलिए बाधित संपादन होता है। वहां स्वैप फाइलें मदद करती हैं।
user55400

9
@ user55400 GNU / स्क्रीन के बारे में सुना है? (या tmux, या यह जापानी विकल्प)
एलाजार लीबोविच २६'११

मैंने इसे Windows पर अपनी _vimrc फ़ाइल में जोड़ा है, और मुझे अभी भी फ़ाइल ~ फ़ाइलें मिल रही हैं। क्या मेरे द्वारा कुछ सही ढंग से नहीं किया जा रहा है?
फिल्मबोट 3

2
@ मैं कभी भी / tmp का उपयोग करने के खिलाफ सलाह दूंगा। यदि पूरी प्रणाली क्रैश हो जाती है और आपको रिबूट करने की आवश्यकता होती है, तो आपके स्वैपफिल्म चले जाएंगे।

57

इसे अपने .vimrc कॉन्फ़िगरेशन फ़ाइल में रखें।

set nobackup

5
हमने इसे विंडोज 8.1 पर विम के साथ किया है। स्वैप फाइलें अभी भी मौजूद हैं।
शॉन लुटिन

1
शॉन, आपको अपने .vimrc में "set noswapfile" जोड़ने के साथ-साथ नई स्वैप फ़ाइलों को बनाने से रोकने की आवश्यकता हो सकती है, जैसा कि मूल प्रश्न के संपादन में बताया गया है।
अर्ल जेडड

कीवर्ड :से पहले उपसर्ग के रूप में बैठने के बारे में क्या set? क्या इसकी आवश्यकता है? यह एक टिप्पणी की तरह नहीं लगता है ..
स्टीफन

@ स्टेफेन एक :उपसर्ग का अर्थ है, कमांड मोड में किया गया, लेकिन आपको :अपने vimrc को लिखने की आवश्यकता नहीं है
TankorSmash

यह वास्तव में एक अच्छा विचार नहीं है। इन फ़ाइलों को अस्थायी / फ़ोल्डर में बैठने देने से ऊपर पहले से बेहतर है।
MonsieurMan

36

; विंडोज उपयोगकर्ताओं के लिए अस्थायी निर्देशिका में वापस

set backup
set backupdir=C:\WINDOWS\Temp
set backupskip=C:\WINDOWS\Temp\*
set directory=C:\WINDOWS\Temp
set writebackup

6
मुझे जोड़ा गया undodir = C: \ WINDOWS \ Temp

यह मेरे लिए काम नहीं किया - मुझे
फ्रैंक शमिट

10

मैंने "noswapsuck" नामक एक प्लगइन बनाया जो केवल स्वैप को सक्षम करता है जब बफर में सहेजे नहीं गए परिवर्तन होते हैं। एक बार परिवर्तन सहेजे जाने के बाद, स्वैपफाइल को साफ कर दिया जाता है। इसलिए, swapfiles जिसमें डिस्क पर फ़ाइल के समान सामग्री शामिल है उसे हटा दिया जाएगा।

इसे यहां लाओ: noswapsuck.vim

यह मेरे लिए अच्छा काम कर रहा है, लेकिन मैंने इसे पहले कभी प्रचारित नहीं किया, इसलिए मैं प्रतिक्रिया का स्वागत करूंगा।

लाभ:

  • केवल स्वैफ़ाइल्स जो आपकी डिस्क पर बने रहते हैं, वे महत्वपूर्ण स्वैफ़िले होंगे जो वास्तव में फ़ाइल से भिन्न होते हैं!

नुकसान:

  • यदि बफ़र में स्वैफ़ाइल है, तो यह पता नहीं चलेगा कि फ़ाइल पहले खोली गई है। यह तभी पता चलेगा जब swapfileसक्षम किया जाएगा, जब आप बफर को संपादित करना शुरू करेंगे। यह गुस्सा देर से है, और आपको बाधित करेगा। (हल: हम अब पहले से मौजूद स्वैप के लिए जाँच करते हैं जब बफर को खोला जाता है, अस्थायी रूप से swapfileविकल्प को फिर से चालू करके ।)

  • यदि आप ऐसे वातावरण में काम कर रहे हैं, जहाँ आप डिस्क-राइट्स को कम करना चाहते हैं (उदाहरण के लिए कम बिजली, या किसी नेटवर्क पर रखी गई फ़ाइलें, या किसी बड़ी फ़ाइल को संपादित करना) तो हर फाइल पर स्वैप फ़ाइल को हटाना और फिर से बनाना आदर्श नहीं है। सहेजें और संपादित करें। ऐसी स्थितियों में, आप कर सकते हैं:

    :let g:NoSwapSuck_CloseSwapfileOnWrite = 0
    

    जो लिखने के बाद स्वैपफाइल रखेगा, लेकिन बफर को खो देने पर भी इसे हटा देगा।

वैसे, मेरे पास एक और छोटा प्लगइन है :DiffAgainstFileOnDiskजो हिट करने के बाद बहुत उपयोगी हो सकता है (r)ecover, यह जांचने के लिए कि क्या आपके द्वारा पुनर्प्राप्त बफर मौजूदा फ़ाइल से नया या पुराना है, या इसके समान है।


8

Windows में _vrc पर निम्न पंक्तियाँ जोड़ें

" store backup, undo, and swap files in temp directory
set directory=$HOME/temp//
set backupdir=$HOME/temp//
set undodir=$HOME/temp//

5

यह उत्तर विंडोज 10 पर जीवीएम का उपयोग करने पर लागू होता है। मैं अन्य ऑपरेटिंग सिस्टम के लिए समान परिणाम की गारंटी नहीं दे सकता।

जोड़ें:

set nobackup
set noswapfile
set noundofile

अपनी _vimrc फ़ाइल में।

नोट: यह सवाल का सीधा जवाब है (विंडोज 10 के लिए) और शायद करने के लिए सबसे सुरक्षित चीज नहीं है (अन्य उत्तरों को पढ़ें), लेकिन यह मेरे मामले में सबसे तेज समाधान है।


0

मेरे उबंटू में यह सेटअप है ।vimrc मैं अपने प्रोजेक्ट फाइलों में कोई स्वैप फाइल नहीं देखता।

set undofile
set undolevels=1000         " How many undos
set undoreload=10000        " number of lines to save for undo

set backup                        " enable backups
set swapfile                      " enable swaps
set undodir=$HOME/.vim/tmp/undo     " undo files
set backupdir=$HOME/.vim/tmp/backup " backups
set directory=$HOME/.vim/tmp/swap   " swap files

" Make those folders automatically if they don't already exist.
if !isdirectory(expand(&undodir))
    call mkdir(expand(&undodir), "p")
endif
if !isdirectory(expand(&backupdir))
    call mkdir(expand(&backupdir), "p")
endif
if !isdirectory(expand(&directory))
    call mkdir(expand(&directory), "p")
endif
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.