Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback
Module

x/denops_std/function/nvim/mod.ts>nvim_create_autocmd

📚 Standard module for denops.vim
Go to Latest
function nvim_create_autocmd
import { nvim_create_autocmd } from "https://deno.land/x/denops_std@v4.1.4/function/nvim/mod.ts";

Create an |autocommand| The API allows for two (mutually exclusive) types of actions to be executed when the autocommand triggers: a callback function (Lua or Vimscript), or a command (like regular autocommands). Example using callback: -- Lua function local myluafun = function() print("This buffer enters") end -- Vimscript function name (as a string) local myvimfun = "g:MyVimFunction" vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, { pattern = {".c", ".h"}, callback = myluafun, -- Or myvimfun }) Lua functions receive a table with information about the autocmd event as an argument. To use a function which itself accepts another (optional) parameter, wrap the function in a lambda: -- Lua function with an optional parameter. -- The autocmd callback would pass a table as argument but this -- function expects number|nil local myluafun = function(bufnr) bufnr = bufnr or vim.api.nvim_get_current_buf() end vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, { pattern = {".c", ".h"}, callback = function() myluafun() end, }) Example using command: vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, { pattern = {".c", ".h"}, command = "echo 'Entering a C or C++ file'", }) Example values for pattern: pattern = ".py" pattern = { ".py", "*.pyi" } Example values for event: "BufWritePre" {"CursorHold", "BufWritePre", "BufWritePost"} Parameters: ~ {event} (string|array) The event or events to register this autocommand {opts} Dictionary of autocommand options: • group (string|integer) optional: the autocommand group name or id to match against. • pattern (string|array) optional: pattern or patterns to match against |autocmd-pattern|. • buffer (integer) optional: buffer number for buffer local autocommands |autocmd-buflocal|. Cannot be used with {pattern}. • desc (string) optional: description of the autocommand. • callback (function|string) optional: if a string, the name of a Vimscript function to call when this autocommand is triggered. Otherwise, a Lua function which is called when this autocommand is triggered. Cannot be used with {command}. Lua callbacks can return true to delete the autocommand; in addition, they accept a single table argument with the following keys: • id: (number) the autocommand id • event: (string) the name of the event that triggered the autocommand |autocmd-events| • group: (number|nil) the autocommand group id, if it exists • match: (string) the expanded value of || • buf: (number) the expanded value of || • file: (string) the expanded value of || • data: (any) arbitrary data passed to |nvim_exec_autocmds()| • command (string) optional: Vim command to execute on event. Cannot be used with {callback} • once (boolean) optional: defaults to false. Run the autocommand only once |autocmd-once|. • nested (boolean) optional: defaults to false. Run nested autocommands |autocmd-nested|. Return: ~ Integer id of the created autocommand. See also: ~ |autocommand| |nvim_del_autocmd()|

Parameters

denops: Denops
event: unknown
opts: unknown

Returns

Promise<unknown>