129 lines
4.7 KiB
Plaintext
129 lines
4.7 KiB
Plaintext
*mini.bufremove* Remove buffers
|
|
*MiniBufremove*
|
|
|
|
MIT License Copyright (c) 2021 Evgeni Chasnovski
|
|
|
|
==============================================================================
|
|
|
|
Features:
|
|
- Unshow, delete, and wipeout buffer while saving window layout
|
|
(opposite to builtin Neovim's commands).
|
|
|
|
# Setup ~
|
|
|
|
This module doesn't need setup, but it can be done to improve usability.
|
|
Setup with `require('mini.bufremove').setup({})` (replace `{}` with your
|
|
`config` table). It will create global Lua table `MiniBufremove` which you
|
|
can use for scripting or manually (with `:lua MiniBufremove.*`).
|
|
|
|
See |MiniBufremove.config| for `config` structure and default values.
|
|
|
|
This module doesn't have runtime options, so using `vim.b.minibufremove_config`
|
|
will have no effect here.
|
|
|
|
To stop module from showing non-error feedback, set `config.silent = true`.
|
|
|
|
# Notes ~
|
|
|
|
1. Which buffer to show in window(s) after its current buffer is removed is
|
|
decided by the algorithm:
|
|
- If alternate buffer (see |CTRL-^|) is listed (see |buflisted()|), use it.
|
|
- If previous listed buffer (see |bprevious|) is different, use it.
|
|
- Otherwise create a new one with `nvim_create_buf(true, false)` and use it.
|
|
|
|
# Disabling ~
|
|
|
|
To disable core functionality, set `vim.g.minibufremove_disable` (globally) or
|
|
`vim.b.minibufremove_disable` (for a buffer) to `true`. Considering high
|
|
number of different scenarios and customization intentions, writing exact
|
|
rules for disabling module's functionality is left to user. See
|
|
|mini.nvim-disabling-recipes| for common recipes.
|
|
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.setup()*
|
|
`MiniBufremove.setup`({config})
|
|
Module setup
|
|
|
|
Parameters ~
|
|
{config} `(table|nil)` Module config table. See |MiniBufremove.config|.
|
|
|
|
Usage ~
|
|
>lua
|
|
require('mini.bufremove').setup() -- use default config
|
|
-- OR
|
|
require('mini.bufremove').setup({}) -- replace {} with your config table
|
|
<
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.config*
|
|
`MiniBufremove.config`
|
|
Module config
|
|
|
|
Default values:
|
|
>lua
|
|
MiniBufremove.config = {
|
|
-- Whether to set Vim's settings for buffers (allow hidden buffers)
|
|
set_vim_settings = true,
|
|
|
|
-- Whether to disable showing non-error feedback
|
|
silent = false,
|
|
}
|
|
<
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.delete()*
|
|
`MiniBufremove.delete`({buf_id}, {force})
|
|
Delete buffer `buf_id` with |:bdelete| after unshowing it
|
|
|
|
Parameters ~
|
|
{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use.
|
|
Default: 0 for current.
|
|
{force} `(boolean|nil)` Whether to ignore unsaved changes (using `!` version of
|
|
command). If `false`, calling with unsaved changes will prompt confirm dialog.
|
|
Default: `false`.
|
|
|
|
Return ~
|
|
`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done.
|
|
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.wipeout()*
|
|
`MiniBufremove.wipeout`({buf_id}, {force})
|
|
Wipeout buffer `buf_id` with |:bwipeout| after unshowing it
|
|
|
|
Parameters ~
|
|
{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use.
|
|
Default: 0 for current.
|
|
{force} `(boolean|nil)` Whether to ignore unsaved changes (using `!` version of
|
|
command). If `false`, calling with unsaved changes will prompt confirm dialog.
|
|
Default: `false`.
|
|
|
|
Return ~
|
|
`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done.
|
|
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.unshow()*
|
|
`MiniBufremove.unshow`({buf_id})
|
|
Stop showing buffer `buf_id` in all windows
|
|
|
|
Parameters ~
|
|
{buf_id} `(number|nil)` Buffer identifier (see |bufnr()|) to use.
|
|
Default: 0 for current.
|
|
|
|
Return ~
|
|
`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done.
|
|
|
|
------------------------------------------------------------------------------
|
|
*MiniBufremove.unshow_in_window()*
|
|
`MiniBufremove.unshow_in_window`({win_id})
|
|
Stop showing current buffer of window `win_id`
|
|
|
|
Notes:
|
|
- If `win_id` represents |cmdline-window|, this function will close it.
|
|
|
|
Parameters ~
|
|
{win_id} `(number|nil)` Window identifier (see |win_getid()|) to use.
|
|
Default: 0 for current.
|
|
|
|
Return ~
|
|
`(boolean|nil)` Whether operation was successful. If `nil`, no operation was done.
|
|
|
|
|
|
vim:tw=78:ts=8:noet:ft=help:norl: |