स्वैप फ़ाइलों को अक्षम करने में अक्षम करना


216

क्या कोई .swpफ़ाइल निर्माण को अक्षम करने का कोई तरीका है ? या कम से कम उन सभी को एक ही स्थान पर बनाएं ताकि मैं उन्हें आसानी से खोज और हटा सकूं।

मैं उन्हें विशेष रूप से परेशान करता हूं जब मैं एक ही समय में संपादन करते हुए मूल निर्देशिका की प्रतिलिपि बनाता हूं। निश्चित रूप से मुझे पता है कि मैं उन्हें खोजने और हटाने के लिए खोज -exec का उपयोग कर सकता हूं। लेकिन मैं अधिक व्यावहारिक समाधान चाहता हूं।


1
stackoverflow.com/questions/607435/… मदद कर सकते हैं
रॉस

जवाबों:


255

Vim से स्वैप फ़ाइलों को अक्षम करने के लिए, टाइप करें

:set noswapfile

स्थायी रूप से स्वैप फ़ाइलों को अक्षम करने के लिए, अपनी ~/.vimrcफ़ाइल में नीचे जोड़ें

set noswapfile

अधिक जानकारी के लिए स्वैप पर विम डॉक्स देखें


6
अगर आपके एडिटर क्रैश (पावर आउटेज आदि) हो तो स्वैप फाइलें अच्छी हैं, बस ध्यान रखें।
कोनसे

1
एक अन्य विकल्प अभी भी स्वैप फ़ाइल का उपयोग होता है, लेकिन इसे मेमोरी में छोड़ दें, इसलिए यह हार्ड डिस्क को लिखना नहीं रखेगा। यह आपको आउटेज के दौरान फ़ाइल को खोने से नहीं बचा सकता है, लेकिन यदि आप उसी फ़ाइल को एथेर विम में खोलते हैं, तो यह आपको तुरंत बताएगा। कमांड है: सेट निर्देशिका = / dev / shm
webbertiger

trusktr का जवाब आपको ओपी की चिंता को संबोधित करते हुए स्वैप फाइलों के फायदे रखने की अनुमति देता है।
jpaugh

अंदर से विम आप एक फ़ाइल खोलते समय स्वैप को अक्षम कर सकते हैं::noswapfile edit /path/to/file
Torkel Bjørnson-Langen

डेटा हानि के बारे में मेरा व्यक्तिगत दर्शन है DBAB और अक्सर बचाओ ...
Samy Bencherif

156

निम्नलिखित चर को .vimrc या / etc / vimrc पर सेट करें ताकि एडिट की जा रही फाइल की वर्किंग डायरेक्टरी के बजाय विशेष लोकेशन में स्वैप, बैकअप और अनडू फाइल्स डालें।

set backupdir=~/.vim/backup//
set directory=~/.vim/swap//
set undodir=~/.vim/undo//

पथ में डबल ट्रेलिंग स्लैश का उपयोग करने से विम को एक सुविधा को सक्षम करने के लिए कहा जाता है जहां यह नाम टकराव से बचा जाता है। उदाहरण के लिए, यदि आप एक फ़ाइल को एक स्थान पर और दूसरी फ़ाइल को किसी अन्य स्थान पर संपादित करते हैं और दोनों फ़ाइलों का एक ही नाम है, तो आप नहीं चाहते कि एक नाम टकराव हो ~ / .vim / swap / में। यदि आप निर्दिष्ट करते हैं ~ / .vim / swap // दो अनुगामी स्लैश के साथ vim टकराव से बचने के लिए संपादित की जा रही फ़ाइलों के पूरे पथ का उपयोग करके स्वैप फ़ाइलें बनाएंगे (फ़ाइल के पथ में स्लैश को प्रतिशत प्रतीक% द्वारा प्रतिस्थापित किया जाएगा)।

उदाहरण के लिए, यदि आप /path/one/foobar.txt और /path/two/foobar.txt को संपादित करते हैं, तो आपको ~ / .vim / swap में दो स्वैप फ़ाइलें दिखाई देंगी और जिन्हें% path% का नाम दिया गया है% phobar.txt। और क्रमशः% पथ% दो% foobar.txt।


आप यह भी जोड़ सकते हैं कि कुछ समय के लिए बचाई गई बैकअप फाइलें एक
देव

टिप्पणी: (आलोचना नहीं), यह मुख्य रूप से विकास के लिए अच्छा लगता है क्योंकि फाइलों और छोटे संपादन या महत्वहीन नोट को पढ़ने के लिए, जो कि बहुत से लोगों के लिए विम उपयोग का एक बड़ा हिस्सा है, यह ऐसा लगता है जैसे अतिरिक्त बहीखाता नौकरी छोड़ देना बेहतर है। मैं व्यक्तिगत रूप से सभी नौकरियों के लिए सिर्फ कोई स्वैप या अन्य ऑटो-बैकअप के लिए पसंद करता हूं। अगर मुझे वास्तव में कुछ विकसित करने की आवश्यकता है, तो मुझे बचाने के लिए एक अधिक उच्च स्तरीय ढांचा होगा, अधिमानतः कोड संस्करण नियंत्रण आदि के साथ
j riv

@ लैलाडैक्स सच है, इन फ़ाइलों में से ज्यादातर बेकार हैं क्योंकि मैं अपने सभी स्रोत कोड के लिए गिट का उपयोग करता हूं। दुर्लभ अवसरों (जैसे दुर्घटना) में वे काम में आ गए हैं। लेकिन वास्तव में, पूर्ववत इतिहास मैं बहुत उपयोग करता है। यह नेविगेट करना बहुत आसान है कि पिछले इतिहास को देखने के लिए जल्दी से बाहर निकलने की जाँच करें। गुंडो पूर्ववत पेड़ को नेविगेट करने के लिए अच्छा और आसान बनाता है। हालांकि मैं स्वैप और बैकअप फ़ाइलों के बिना रह सकता था।
३० बजे त्रिशंकु

26
ऐसे लोगों के लिए बस FYI करें जो नए हैं (जैसे मुझे हाहा ...) क्या आपको ~ ~ .vim / पर जाना है और निर्देशिकाओं को स्वयं बनाना है। यह आपके लिए उन्हें ऑटो नहीं बनाएगा।
अगस्त

1
आप अपने लिए फ़ोल्डर बनाने के लिए अपने vimrc में कुछ कोड भी लिख सकते हैं, जो कि मैंने अपना किया है। इसलिए, नए सिस्टम पर, मुझे सिर्फ अपना vimrc मिलता है, और यह बाकी का ध्यान रखता है।
त्रिकूट

42

मैं इस सवाल का जवाब मिल गया यहाँ :

vim -n <file>

स्वैप के बिना फ़ाइल खोलता है।

के अतिरिक्त:

set dir=/tmp

में .vimrcswapfiles बनाता है /tmp


*.ext~बैकअप फ़ाइलों के बारे में क्या ? क्या उन्हें अक्षम करने के लिए कोई कमांड लाइन विकल्प भी है?
सलमान वॉन अब्बास

यह उन एक बंद विशाल फ़ाइलों के लिए बहुत उपयोगी है! धन्यवाद।
फेलिप अल्वारेज़

28

यहाँ मेरी व्यक्तिगत ~ / .vimrc बैकअप सेटिंग्स हैं

" backup to ~/.tmp 
set backup 
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp 
set backupskip=/tmp/*,/private/tmp/* 
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp 
set writebackup

13

मैं उन लोगों से सहमत हूं जो सवाल करते हैं कि विम को इस सभी 'आपदा वसूली' सामान की आवश्यकता क्यों है जब कोई अन्य पाठ संपादक इसके साथ परेशान नहीं करता है। जब मैं इसे संपादित कर रहा होता हूं, तो संपादित फ़ाइल की निर्देशिका में कोई भी अतिरिक्त फ़ाइल बनाना नहीं चाहता, बहुत बहुत धन्यवाद। उस अंत तक, मेरे पास _vimrcस्वैप फ़ाइलों को अक्षम करने के लिए यह है , और परेशान 'बैकअप' फ़ाइलों को अस्थायी डीआईआर में स्थानांतरित करें:

" Uncomment below to prevent 'tilde backup files' (eg. myfile.txt~) from being created
"set nobackup

" Uncomment below to cause 'tilde backup files' to be created in a different dir so as not to clutter up the current file's directory (probably a better idea than disabling them altogether)
set backupdir=C:\Windows\Temp

" Uncomment below to disable 'swap files' (eg. .myfile.txt.swp) from being created
set noswapfile

9
मुझे लगता है कि अन्य संपादकों के साथ यह परेशान नहीं करता है क्योंकि यह अन्य संपादकों की तुलना में खराब तरीके से प्रतिबिंबित करता है, जितना कि यह vi (m) पर खराब दर्शाता है। इन फ़ाइलों को डालने के लिए समान-निर्देशिका को डिफ़ॉल्ट स्थान बनाने का विकल्प थोड़ा दुर्भाग्यपूर्ण है, हालांकि कम से कम मामूली रूप से रक्षात्मक है। (उदाहरण के लिए, एक बहुस्तरीय, अत्यधिक क्रॉस-माउंटेड वातावरण में, यह स्पष्ट नहीं हो सकता है कि उस क्षण में पुनर्प्राप्ति फ़ाइल कहां मिलेगी, जब आपको इसकी सबसे अधिक आवश्यकता हो)
डोमिंगो इग्नासियो

3
विम की अदला-बदली से निपटने के लिए सिर्फ भयानक है। मैंने 5 बार खोए हुए डेटा को पुनर्प्राप्त करने के लिए इसका उपयोग किया है। लेकिन मुझे लगभग 9,000 बार स्वैफ़ाइल पुनर्प्राप्त करने के लिए परेशान किया गया है, जो कि वास्तव में फ़ाइल के समान है, या एक आउट-ऑफ-डेट संस्करण बदतर है। यह एक अच्छी सुविधा हो सकती है अगर रिकवरी प्रक्रिया इतनी बुरी तरह से नहीं सोखती है। वसूलना। विम थोड़ी मदद करता है, लेकिन अभी भी बहुत इंटरैक्टिव है।
joeytwiddle

3
उदात्त पाठ है disaster recovery। मुझे यह पसंद है! मुझे कोई फ़ाइल सहेजने की भी आवश्यकता नहीं है, जब मैं अपने द्वारा किए गए किसी भी परिवर्तन को फिर से शुरू करता हूं, सहेजा जाता है या नहीं, वापस खींच लिया जाता है।
leetNightshade

मेरे पास एक साधारण ऑटोकॉम है जो सभी परिवर्तनों को लिखते ही बनाता है, दोनों स्वैप और बैकअप को बेकार बनाते हैं।
tbodt

2
@ TorkelBjørnson-Langen यह मेरे सभी विम सत्रों को बंद किए बिना मेरी मशीन को रिबूट करने के लिए शायद मेरी गलती है, और फिर पागल होने के बारे में जो कि पुनर्प्राप्त की गई फाइलें वास्तव में वैध हैं। वैसे भी मैंने दोनों दुनियाओं में सर्वश्रेष्ठ पाने की कोशिश की, एक प्लगइन लिखकर जो केवल एक अदला-बदली
joeytwiddle

7

आप अपनी स्वैप फ़ाइलों को पूरी तरह से अक्षम करने के लिए बैकअप और डायरेक्टरी को अशक्त करने के लिए सेट कर सकते हैं, लेकिन आमतौर पर उन्हें केवल एक केंद्रीकृत निर्देशिका में रखने की सिफारिश की जाती है। विम यह सुनिश्चित करने का ख्याल रखता है कि नाम के टकराव या उस तरह का कुछ भी नहीं है; तो, यह एक पूरी तरह से सुरक्षित विकल्प है:

set backupdir=~/.vim/backup/
set directory=~/.vim/backup/

3
आपको //रास्तों के अंत में एक डबल स्लैश जोड़ना चाहिए ताकि आप एक ही समय में एक ही नाम के साथ दो फ़ाइलों को संशोधित कर सकें।
सैमुअल ओ'माल्ली

धन्यवाद, @ सैमुएलओ'माल्ली // क्या करता है?
मोनोक्रोम

:help directoryयदि आप इसके लिए डॉक्स पढ़ना चाहते हैं तो एक नज़र डालें । डबल स्लैश बताता है कि फ़ाइल के पूर्ण पथ को स्वैप फ़ाइल के नाम में एनकोड करना है, उदाहरण के लिए %home%sam%dotfiles%.gitignore.swp, बजाय .gitignore.swp
शमूएल ओ'मले

3

यदि आप set directory=""अपनी exrc फ़ाइल में रखते हैं, तो आप स्वैप फ़ाइल को बंद कर देंगे। हालाँकि, ऐसा करने से पुनर्प्राप्ति अक्षम हो जाएगी।

अधिक जानकारी यहाँ


3

आप उपयोग कर रहे हैं git, तो आप जोड़ सकते हैं *.swpकरने के लिए .gitignore


मुझे लगता है कि यही सबसे अधिक उपयोगकर्ताओं की जरूरत है! स्वैप फ़ाइलों को बंद करना बुरा अभ्यास है।
डेनिसकोलिन

2

केवल किसी विशेष फ़ाइल के लिए कोई वीआईएम स्वैप फ़ाइल न बनाएं

autocmd bufenter  c:/aaa/Dropbox/TapNote/Todo.txt :set noswapfile

1
या किसी विशेष निर्देशिका में सभी फ़ाइलों के लिए, निम्नलिखित कार्य करने के लिए लगता है (केवल संक्षिप्त परीक्षण):autocmd bufenter c:/aaa/Dropbox/TapNote/* :set noswapfile
scottkosty

1

रेल परियोजनाओं के लिए इसे निर्धारित करने की कोशिश कर रहे किसी भी व्यक्ति के लिए, जोड़ें

set directory=tmp,/tmp

तुम्हारे अंदर

~/.vimrc

तो .swp फाइलें उनके प्राकृतिक स्थान पर होंगी - tmp निर्देशिका (प्रति परियोजना)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.