Home Explore Blog CI



neovim

19th chunk of `runtime/doc/lua.txt`
addcb6cd1561e7a2e55db2232570fe68592334dd0c343cfe0000000100000fb0
                   *vim.opt:get()*
    Returns a Lua-representation of the option. Boolean, number and string
    values will be returned in exactly the same fashion.

    For values that are comma-separated lists, an array will be returned with
    the values as entries in the array: >lua
        vim.cmd [[set wildignore=*.pyc,*.o]]

        vim.print(vim.opt.wildignore:get())
        -- { "*.pyc", "*.o", }

        for _, ignore_pattern in ipairs(vim.opt.wildignore:get()) do
            print("Will ignore:", ignore_pattern)
        end
        -- Will ignore: *.pyc
        -- Will ignore: *.o
<

    For values that are comma-separated maps, a table will be returned with
    the names as keys and the values as entries: >lua
        vim.cmd [[set listchars=space:_,tab:>~]]

        vim.print(vim.opt.listchars:get())
        --  { space = "_", tab = ">~", }

        for char, representation in pairs(vim.opt.listchars:get()) do
            print(char, "=>", representation)
        end
<

    For values that are lists of flags, a set will be returned with the flags
    as keys and `true` as entries. >lua
        vim.cmd [[set formatoptions=njtcroql]]

        vim.print(vim.opt.formatoptions:get())
        -- { n = true, j = true, c = true, ... }

        local format_opts = vim.opt.formatoptions:get()
        if format_opts.j then
            print("J is enabled!")
        end
<

    Return: ~
        (`string|integer|boolean?`) value of option

Option:prepend({value})                                    *vim.opt:prepend()*
    Prepend a value to string-style options. See |:set^=|

    These are equivalent: >lua
        vim.opt.wildignore:prepend('*.o')
        vim.opt.wildignore = vim.opt.wildignore ^ '*.o'
<

    Parameters: ~
      • {value}  (`string`) Value to prepend

Option:remove({value})                                      *vim.opt:remove()*
    Remove a value from string-style options. See |:set-=|

    These are equivalent: >lua
        vim.opt.wildignore:remove('*.pyc')
        vim.opt.wildignore = vim.opt.wildignore - '*.pyc'
<

    Parameters: ~
      • {value}  (`string`) Value to remove

vim.bo[{bufnr}]                                                       *vim.bo*
    Get or set buffer-scoped |options| for the buffer with number {bufnr}.
    Like `:setlocal`. If {bufnr} is omitted then the current buffer is used.
    Invalid {bufnr} or key is an error.

    Example: >lua
        local bufnr = vim.api.nvim_get_current_buf()
        vim.bo[bufnr].buflisted = true    -- same as vim.bo.buflisted = true
        print(vim.bo.comments)
        print(vim.bo.baz)                 -- error: invalid key
<

vim.env                                                              *vim.env*
    Environment variables defined in the editor session. See |expand-env| and
    |:let-environment| for the Vimscript behavior. Invalid or unset key
    returns `nil`.

    Example: >lua
        vim.env.FOO = 'bar'
        print(vim.env.TERM)
<

vim.go                                                                *vim.go*
    Get or set global |options|. Like `:setglobal`. Invalid key is an error.

    Note: this is different from |vim.o| because this accesses the global
    option value and thus is mostly useful for use with |global-local|
    options.

    Example: >lua
        vim.go.cmdheight = 4
        print(vim.go.columns)
        print(vim.go.bar)     -- error: invalid key
<

vim.o                                                                  *vim.o*
    Get or set |options|. Works like `:set`, so buffer/window-scoped options
    target the current buffer/window. Invalid key is an error.

    Example: >lua
        vim.o.cmdheight = 4
        print(vim.o.columns)
        print(vim.o.foo)     -- error: invalid key
<

vim.wo[{winid}][{bufnr}]                                              *vim.wo*
    Get or set window-scoped |options| for the window with handle {winid} and
    buffer with number {bufnr}. Like `:setlocal` if setting a |global-local|

Title: vim.opt:get(), vim.opt:prepend(), vim.opt:remove(), vim.bo, vim.env, vim.go, vim.o, vim.wo
Summary
This section describes the Lua API for interacting with Vim options and variables. It details how `vim.opt:get()` returns Lua representations of options, including sets for lists of flags. It also explains `vim.opt:prepend()` and `vim.opt:remove()` for modifying string-style options. It then describes `vim.bo` for buffer-scoped options, `vim.env` for environment variables, `vim.go` for global options, `vim.o` for general options, and `vim.wo` for window-scoped options, providing examples of their usage.