Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Write To A Neovim File Buffer With Lua

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

Code

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

References