Vim close window without closing buffer

后端 未结 3 1986
遥遥无期
遥遥无期 2021-01-30 13:43

How do I close a window or unsplit without deleting the buffer?

相关标签:
3条回答
  • 2021-01-30 13:56

    A window is a viewport on a buffer. In vim to manage windows it is CTRL+w the leading command, that you can follow with several options (in bold those that answer to your question):

    CTRL+w, v: Opens a new vertical split

    CTRL+w, c: Closes a window but keeps the buffer

    CTRL+w, o: Closes other windows, keeps the active window only

    CTRL+w, right arrow: Moves the cursor to the window on the right

    CTRL+w, r: Moves the current window to the right

    CTRL+w, =: Makes all splits equal size

    Then, you need to switch the buffers in the windows:

    :ls lists all opened buffers

    :b5 switches to your 5th buffer

    Finally, to open all buffers in a vertical split, use: :vertical sball. Very useful when you open multiple files as buffers after a grep:

    grep -rno --exclude-dir={dir1,dir2,dir3} "searchterm" *
    vim $(!! -l)
    

    For more info, see the doc: vimdoc.sourceforge.net

    0 讨论(0)
  • 2021-01-30 14:12

    Vim windows are closed using :q.

    However, if you don't have another window open, it will exit from Vim. If you do have another window to switch to, only the current window is closed, and buffer remains open. You may need to set hidden.

    To close a buffer, you would need to do :bdelete.

    You can check if your buffer is open or not by using :buffers.

    0 讨论(0)
  • 2021-01-30 14:17

    If you want to edit another buffer in the window, just use :edit / :buf. The current buffer will be replaced, and remains in the buffer list (i.e. it shows up in :ls).

    If you want to close the windows split, use :close. The :quit command will work, too, but has the side effect of closing Vim when this is the last window.

    In order to leave buffers that have changes, you need

    :set hidden
    

    If you know how Vim deals with buffers, this is a recommended option that many users have set.

    0 讨论(0)
提交回复
热议问题