「やめる」と「打ち切る」の違いは何ですか?


23

複数のvimインスタンスからファイルを開こうとすると、いくつかのオプションでエラーが発生します。

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

「終了」と「中止」の違いは何ですか?

私が最初に推測したのは、複数のファイルを開こうとしていて、他の場所で編集されているファイルが1つだけの場合、「quit」はそのファイルをスキップし、「abort」はプログラムを終了しますが、明らかに間違っています-両方の試みを放棄します編集時にターミナルに戻ります。


2
:help swap-exists-choicesあなたの質問に答えますか?
FDinoff

@FDinoffそれは役立ちますが、まだ「中止」については明確ではありません。「さらにコマンドを中止します。これは、複数のファイルを編集するスクリプトをロードするときに役立ちます」-「追加のコマンド」はvimスクリプトからのものであると想定されていますか?これが懸念されるのは、vimスクリプトが新しいバッファーを開くのに本当に一般的ですか?
ケビン

回答:


20

これを試してください:vim file1ターミナルで実行vim -p file1 file2してから、別のターミナルで実行します。2番目のコマンドは、上記のようにプロンプ​​トを表示します。答えるならQuit、あなたはまだ編集することができますfile2。答えAbortたらVimを終了するだけで、「それ以上コマンドを中止する」ことができます。


それでは、タブまたは分割ウィンドウ(-p/ -o/ -O)で開くときにのみ違いがありますか?vim file1 file2file1の編集中に、終了と中止の両方で完全にexit を使用するだけです。また、file2の編集中は、次のキーを押すまでプロンプトは表示されません。その場合、終了と中止の両方がfile1に戻ります。
ケビン

1
分かりません。ファイルを開くことは、基本的に一連のコマンドです。 vim file1 file22つのことを行います。引数(アクセスできるもの)を設定し、バッファの最初のファイルをargv()ロードします。2番目のファイルは、実行時(または同様)にのみ実際にロードされます。Vimがプロンプトを表示すると、引数はすでに設定されているため、その時点で実行する「追加の」コマンドは残っていません。また、他のものもコマンド、fi 、およびで設定されたコマンドとしてカウントされます。これはすべて、影響を受けるファイルの観点ではなく、コマンドの観点で考える必要があります。:nQuitautocmdvim -c
lcd047

4

@FDinoffは、vimヘルプを確認することを提案しまし。誰でもこれらをもっと簡単に見たい場合:

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を使用して複数のファイルをチェックする場合は次のようになります。

vim file1.txt file2.txt

最初のものがロックされてquitを呼び出すと、file2.txtに進みますが、中止はアプリケーションから完全に抜け出します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.