home ~ socials ~ projects ~ rss

Write To A Neovim File Buffer With Lua

June 2021

TODO

    Combine this with the other file that has the same basic details

    Add links to nvim_buf_set_text(), nvim_paste(), and nvim_put()

Use vim.api.nvim_buf_set_lines() to write lines to a Neovim buffer. For example, this will append two lines to the end of a the

local bufnr = 25
local start_line = -1
local end_line = -1
local strict_bounds = false
local lines = { "alfa" }

vim.api.nvim_buf_set_lines(
  bufnr, start_line, end_line, strict_bounds, lines
)
From the docs:

nvim_buf_set_lines({buffer}, {start}, {end}, {strict_indexing}, {replacement})
                Sets (replaces) a line-range in the buffer.

                Indexing is zero-based, end-exclusive. Negative indices are
                interpreted as length+1+index: -1 refers to the index past the
                end. So to change or delete the last element use start=-2 and
                end=-1.

                To insert lines at a given index, set ``start`` and ``end`` to the
                same index. To delete a range of lines, set ``replacement`` to
                an empty array.

                Out-of-bounds indices are clamped to the nearest valid value,
                unless ``strict_indexing`` is set.

                Attributes: 
                    not allowed when |textlock| is active

                Parameters: 
                    {buffer}           Buffer handle, or 0 for current buffer
                    {start}            First line index
                    {end}              Last line index (exclusive)
                    {strict_indexing}  Whether out-of-bounds should be an
                                       error.
                    {replacement}      Array of lines to use as replacement
end of line
Share link:
https://www.alanwsmith.com/en/20/eo/c6/qz/?write-to-a-neovim-file-buffer-with-lua