vimが終了せずにファイルを閉じることはできますか?

vimが終了せずにファイルを閉じることはできますか?

ファイルが開いてvim編集が完了しました。ファイルを閉じる方法はありますか(またはバッファーvim画面を空白にしますか?

答え1

それです:bd:help :bdvim 8.2 では以下を提供します。

:[N]bd[elete][!]                        *:bd* *:bdel* *:bdelete* *E516*
:bd[elete][!] [N]
            Unload buffer [N] (default: current buffer) and delete it from
            the buffer list.  If the buffer was changed, this fails,
            unless when [!] is specified, in which case changes are lost.
            The file remains unaffected.  Any windows for this buffer are
            closed.  If buffer [N] is the current buffer, another buffer
            will be displayed instead.  This is the most recent entry in
            the jump list that points into a loaded buffer.
            Actually, the buffer isn't completely deleted, it is removed
            from the buffer list |unlisted-buffer| and option values,
            variables and mappings/abbreviations for the buffer are
            cleared. Examples:
                :.,$-bdelete    " delete buffers from the current one to
                                " last but one
                :%bdelete       " delete all buffers

答え2

いくつかのアイデアを追加し、いくつかの用語の問題を解決しましょう。

  • Vimはファイルを直接操作しないことがよくあります。:editファイルをバッファに読み込むなどのコマンド。バッファとファイルは、バッファ名がファイル名であるという事実によってのみ接続を共有します。基本ファイルに対する変更はバッファに自動的に反映されず、その逆も同様です。:writeファイルへのバッファの書き込みなどのコマンド -どのバッファ(現在のバッファ)どの文書。デフォルトはバッファ名ですが、上書きできます。また、一部のバッファには名前がありません! (:help backupファイルに書き込むときに発生する可能性がある他のファイル操作については、参考資料を参照してください。)
  • 一方、Vimは通常スワップファイルを維持します。これはいくつかの他の目的に使用されますが、そのうちの1つは、特定のVimインスタンスがファイルを「所有」していることを示し、同時編集について警告することです。 (読み取り専用は、ファイルを編集しようとするまでスワップファイルに気を付ける必要はありませんview。)

したがって、これを説明する少なくともいくつかの方法があります。

  1. 他のVimがファイルを編集できるように、ファイルを完成したとVimにどのように通知できますか?この場合、おそらく必要があり、:bdeleteバッファが削除され、スワップファイルが削除されます。しかし、完全にやめることを検討することもできます。開始時間が早ければ、長期実行セッションを維持しようとするよりも、Vimを起動して終了する方が簡単です(および参照:help :mksession:help -S
  2. 画面を空白にする方法は?が必要な場合があります:enew。これは、引数なしでVimを実行したときに取得されるバッファと少し似ています。

関連情報