Home Explore Blog CI



neovim

20th chunk of `runtime/doc/lua.txt`
16061d5394ca017a6f4ed48ef1d4b049acc72c9526d339ef0000000100000fa8
                                        *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|
    option or if {bufnr} is provided, like `:set` otherwise. If {winid} is
    omitted then the current window is used. Invalid {winid}, {bufnr} or key
    is an error.

    Note: only {bufnr} with value `0` (the current buffer in the window) is
    supported.

    Example: >lua
        local winid = vim.api.nvim_get_current_win()
        vim.wo[winid].number = true    -- same as vim.wo.number = true
        print(vim.wo.foldmarker)
        print(vim.wo.quux)             -- error: invalid key
        vim.wo[winid][0].spell = false -- like ':setlocal nospell'
<


==============================================================================
Lua module: vim                                                      *lua-vim*

vim.cmd({command})                                                 *vim.cmd()*
    Executes Vimscript (|Ex-commands|).

    Note that `vim.cmd` can be indexed with a command name to return a
    callable function to the command.

    Example: >lua
        vim.cmd('echo 42')
        vim.cmd([[
          augroup My_group
            autocmd!
            autocmd FileType c setlocal cindent
          augroup END
        ]])

        -- Ex command :echo "foo"
        -- Note string literals need to be double quoted.
        vim.cmd('echo "foo"')
        vim.cmd { cmd = 'echo', args = { '"foo"' } }
        vim.cmd.echo({ args = { '"foo"' } })
        vim.cmd.echo('"foo"')

        -- Ex command :write! myfile.txt
        vim.cmd('write! myfile.txt')
        vim.cmd { cmd = 'write', args = { "myfile.txt" }, bang = true }
        vim.cmd.write { args = { "myfile.txt" }, bang = true }
        vim.cmd.write { "myfile.txt", bang = true }

        -- Ex command :colorscheme blue
        vim.cmd('colorscheme blue')
        vim.cmd.colorscheme('blue')
<

    Parameters: ~
      • {command}  (`string|table`) Command(s) to execute. If a string,
                   executes multiple lines of Vimscript at once. In this case,
                   it is an alias to |nvim_exec2()|, where `opts.output` is
                   set to false. Thus it works identical to |:source|. If a
                   table, executes a single command. In this case, it is an
                   alias to |nvim_cmd()| where `opts` is empty.

    See also: ~
      • |ex-cmd-index|

vim.defer_fn({fn}, {timeout})                                 *vim.defer_fn()*
    Defers calling {fn} until {timeout} ms passes.

    Use to do a one-shot timer that calls {fn} Note: The {fn} is
    |vim.schedule_wrap()|ped automatically, so API functions are safe to call.

    Parameters: ~
      • {fn}       (`function`) Callback to call once `timeout` expires
      • {timeout}  (`integer`) Number of milliseconds to wait before calling
                   `fn`

    Return: ~
        (`table`) timer luv timer object

                                                             *vim.deprecate()*
vim.deprecate({name}, {alternative}, {version}, {plugin}, {backtrace})
    Shows a deprecation message to the

Title: vim.go, vim.o, vim.wo, vim.cmd(), vim.defer_fn(), vim.deprecate()
Summary
This section details several Lua API functions for Neovim. It covers `vim.go` (global options), `vim.o` (general options), and `vim.wo` (window-scoped options). Additionally, it describes `vim.cmd()` for executing Vimscript commands (including indexing for callable functions), `vim.defer_fn()` for deferring function calls with a timeout, and `vim.deprecate()` for displaying deprecation warnings.