Home

Awesome

<img src="media/nvim.svg" height="60px" align="right" />

💬 Bmessages - Better Neovim Messages

https://github.com/ariel-frischer/bmessages.nvim/assets/19893395/10ae410d-7d0d-4568-9c27-dc7ca6f89137

✨ Features

📦 Installation

Add bmessages to your Neovim configuration using your preferred package manager.

With lazy.nvim

<details open> <summary>Click to expand/collapse</summary>
{
  "ariel-frischer/bmessages.nvim",
  event = "CmdlineEnter",
  opts = {}
}
</details>

With packer.nvim

<details> <summary>Click to expand/collapse</summary>
use({
  "ariel-frischer/bmessages.nvim",
    config = function()
      require("bmessages").setup({
        -- config here or empty for defaults
      })
    end,
  })
</details>

With vim-plug

<details> <summary>Click to expand/collapse</summary>
Plug 'ariel-frischer/bmessages.nvim'
" ... other plugins...
" after plug#end()
" provide `setup()` configuration options or leave empty for defaults
lua require('bmessages').setup()
</details>

With pckr.nvim

<details> <summary>Click to expand/collapse</summary>
{ "ariel-frischer/bmessages.nvim",
  config = function()
    require("bmessages").setup({
      -- config here or empty for defaults
    })
  end,
};
</details>

⚙️ Available Configuration Options

Given options are the default values.

local opts = {
  -- Time in milliseconds between each update of the messages buffer.
  timer_interval = 1000,
  -- Default split type for the messages buffer ('vsplit' or 'split').
  split_type = "vsplit",
  -- Default split direction for the messages buffer ('topleft' or 'botright').
  split_direction = nil,
  -- Size of the vertical split when opening the messages buffer.
  split_size_vsplit = nil,
  -- Size of the horizontal split when opening the messages buffer.
  split_size_split = nil,
  -- Automatically scroll to the latest message in the buffer.
  autoscroll = true,
  -- Use a timer to auto-update the messages buffer. When this is disabled,
  -- the buffer will not update, but the buffer becomes modifiable.
  use_timer = true,
  -- Name of the messages buffer.
  buffer_name = "bmessages_buffer",
  -- Don't add user commands for `Bmessages`, `Bmessagesvs`, and `Bmessagessp`.
  disable_create_user_commands = false,
  -- Don't focus the bmessages window after opening.
  keep_focus = false,
}

🚀 Usage

:Bmessages

Creates a message buffer with the configured options.

:Bmessagesvs

Creates a message buffer with a vertical split, overriding the split_type to vsplit.

:Bmessagessp

Creates a message buffer with a horizontal split, overriding the split_type to split.

:BmessagesEdit

Creates an editable message buffer with the configured options without auto updating.

Lua API

require("bmessages").toggle({ split_type = "split" })

⌨️ Keymaps

No keymaps are set by default, but you can easily set your own keymaps to open the messages buffer.

vim.api.nvim_set_keymap("n", "<leader>bm", ":Bmessages<CR>", { noremap = true, silent = true })

👏 Acknowledgements