“Çık” ve “iptal” arasındaki fark nedir?


23

Birden çok vim örneğinden bir dosyayı açmaya çalıştığımda, birkaç seçenekle hata alıyorum:

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

"Çık" ve "İptal" arasındaki fark nedir?

İlk tahminim, birden fazla dosyayı açmaya çalıştığımda ve yalnızca birisinin başka bir yerde düzenlendiği zaman, "bırakma" birini atlayabilir ve "durdurma" programdan çıkmış olabilir, ancak bu açıkça yanlış - ikisi de tüm çabayı bıraktı düzenleme ve terminale geri bırakma.


2
Soruna :help swap-exists-choicescevap veriyor mu ?
FDinoff

@FDinoff yardımcı olur, ancak hala "Abort" konusunda net değilim. "ayrıca daha fazla komuttan vazgeç. Bu, birkaç dosyayı düzenleyen bir komut dosyası yüklerken kullanışlıdır" - "Diğer komutlar" ın bir vim komut dosyasından mı alınması gerekiyor? Bir vim betiğinin, bunun bir endişe kaynağı olduğu yeni tamponlar açması gerçekten yaygın mı?
Kevin,

Yanıtlar:


20

Bunu deneyin: vim file1bir terminalde çalıştırın, sonra vim -p file1 file2farklı bir terminalde çalıştırın . İkinci komut size yukarıdaki gibi bilgi verecektir. Cevap Quitverirseniz, yine de düzenlemeye devam edersiniz file2. Cevap Abortverirsen Vim'i bırak, böylece "daha fazla komuttan vazgeç".


Öyleyse sadece sekmelere açarken veya pencereleri bölerken ( -p/ -o/ -O) bir fark var mı? Sadece vim file1 file2file1 düzenlenirken çıkışın ve çıkmanın tamamen durdurulması; ve file2 düzenlenirken, komut istemi bir sonraki isabete kadar görünmez ve bu durumda hem istifa hem de iptal sadece dosya1'e geri döner.
Kevin,

1
Anlamıyorsun Dosyaları açmak aslında bir dizi komuttur. vim file1 file2iki şey yapar: argümanları (erişebileceğiniz şey) ayarlar ve arabellekteki ilk dosyayı argv()yükler . İkinci dosya aslında yalnızca çalıştırdığınızda (veya benzer şekilde) yüklenir . Vim size sorduğunda argümanlar zaten ayarlanmıştır, bu yüzden eğer o noktada çalıştırmanız için "ileri" komutu kalmaz. Ayrıca, diğer şeyler de komut olarak sayılır, fi'ler ve komutlar ile ayarlanır . Tüm bunları, etkilenen dosyalar açısından değil, komutlar olarak düşünmelisiniz. :nQuitautocmdvim -c
lcd047

4

@FDinoff vim yardımını kontrol etmeyi önerdi . Herhangi birinin bunları daha kolay görmek istemesi durumunda:

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.

Kesin olarak söyleyebileceğim kadarıyla birden fazla dosyayı kontrol etmek için vim kullandığınızda, bunun gibi:

vim file1.txt file2.txt

Birincisi kilitliyse ve çıkmak için çağrı yaparsanız, file2.txt dosyasına gidecektir, oysa iptal uygulamadan tamamen çıkacaktır.

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.