"छोड़ दिया" और "गर्भपात" के बीच अंतर क्या है?


23

जब मैं कई विम इंस्टेंस से फ़ाइल खोलने की कोशिश करता हूं, तो मुझे कई विकल्पों के साथ एक त्रुटि मिलती है:

Swap file "~/.vim/tmp/file.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

"छोड़ो" और "गर्भपात" के बीच अंतर क्या है?

मेरा पहला अनुमान था, जब मैं कई फाइलें खोलने की कोशिश कर रहा हूं और केवल एक को कहीं और संपादित किया जा रहा है, तो "छोड़ें" उस एक को छोड़ सकता है और "गर्भपात" कार्यक्रम को छोड़ सकता है, लेकिन यह स्पष्ट रूप से गलत है - दोनों ही पूरे प्रयास को छोड़ देते हैं संपादन और टर्मिनल पर वापस जाने के लिए।


2
है :help swap-exists-choicesआपके प्रश्न का उत्तर?
एफडिनॉफ

@Finoff यह मदद करता है, लेकिन मैं अभी भी "एबोर्ट" पर स्पष्ट नहीं हूं। "आगे के आदेशों को भी निरस्त करें। यह एक स्क्रिप्ट को लोड करते समय उपयोगी होता है जो कई फाइलों को संपादित करता है" - क्या "आगे की आज्ञा" एक स्क्रिप्ट से माना जाता है? क्या वास्तव में एक विम् स्क्रिप्ट के लिए नए बफ़र्स खोलने के लिए पर्याप्त है कि यह एक चिंता का विषय है?
केविन

जवाबों:


20

यह कोशिश करें: vim file1एक टर्मिनल vim -p file1 file2में चलाएं, फिर एक अलग टर्मिनल में चलाएं । दूसरा कमांड आपको ऊपर के रूप में संकेत देगा। यदि आप उत्तर देते हैं Quit, तो आप अभी भी संपादन करते हैं file2। यदि आप जवाब देते Abortहैं तो आप विम को छोड़ दें, इस प्रकार "आगे किसी भी कमांड को निरस्त करना"।


तो वहाँ केवल एक अंतर है जब टैब या विभाजन खिड़कियों में खोलने ( -p/ -o/ -O)? vim file1 file2जब फ़ाइल 1 को संपादित किया जा रहा हो, तो पूरी तरह से बाहर निकलने और छोड़ने दोनों पर पूरी तरह से बाहर निकलने का उपयोग करना ; और जब फ़ाइल 2 को संपादित किया जा रहा है, तो प्रॉम्प्ट अगले हिट तक दिखाई नहीं देता है, और उस स्थिति में दोनों को छोड़ दें और गर्भपात करें फ़ाइल 1 पर वापस जाएं।
केविन

1
आप समझ नहीं रहे हैं। फाइलें खोलना अनिवार्य रूप से आदेशों का एक क्रम है। vim file1 file2दो चीजें करता है: यह तर्कों को सेट करता है (वह चीज जिसे आप एक्सेस कर सकते हैं argv()), और यह बफर में पहली फाइल को लोड करता है । दूसरी फ़ाइल वास्तव में केवल तभी लोड होती है जब आप चलाते हैं :n(या समान)। जब विम आपको संकेत देता है कि तर्क पहले ही सेट किए जा चुके हैं, इसलिए यदि आप Quitउस बिंदु पर चलने के लिए कोई "आगे" कमांड नहीं छोड़ते हैं। इसके अलावा, अन्य चीजें भी कमांड के रूप में गिनती करती हैं, फाई autocmdएस और कमांड सेट के साथ vim -c। आपको यह सब कमांड के संदर्भ में सोचना चाहिए, न कि प्रभावित फाइलों के संदर्भ में।
lcd047

4

@Finoff ने विम सहायता की जाँच करने का सुझाव दिया । मामले में किसी को भी इन और अधिक आसानी से देखना चाहता था:

WHAT TO DO?                                     *swap-exists-choices*

If dialogs are supported you will be asked to select one of five choices:

  Swap file ".main.c.swp" already exists! ~
  [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~

O  Open the file readonly.  Use this when you just want to view the file and
   don't need to recover it.  You might want to use this when you know someone
   else is editing the file, but you just want to look in it and not make
   changes.

E  Edit the file anyway.  Use this with caution!  If the file is being edited
   in another Vim, you might end up with two versions of the file.  Vim will
   try to warn you when this happens, but better be safe then sorry.

R  Recover the file from the swap file.  Use this if you know that the swap
   file contains changes that you want to recover.

Q  Quit.  This avoids starting to edit the file.  Use this if there is another
   Vim editing the same file.
      When you just started Vim, this will exit Vim.  When starting Vim with
   files in several windows, Vim quits only if there is a swap file for the
   first one.  When using an edit command, the file will not be loaded and you
   are taken back to the previously edited file.

A  Abort.  Like Quit, but also abort further commands.  This is useful when
   loading a script that edits several files, such as a session with multiple
   windows.

D  Delete the swap file.  Use this when you are sure you no longer need it.
   For example, when it doesn't contain changes, or when the file itself is
   newer than the swap file.
      On Unix this choice is only offered when the process that created the
   swap file does not appear to be running.

जहाँ तक मैं बता सकता हूँ कि जब आप कई फ़ाइलों के माध्यम से जाँच करने के लिए विम का उपयोग करते हैं, तो ऐसा है:

vim file1.txt file2.txt

यदि पहला बंद है और आप कॉल छोड़ते हैं, तो यह file2.txt पर जाएगा, जबकि एबॉर्ट पूरी तरह से एप्लिकेशन से बाहर हो जाएगा।

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