From 2bbd588e73c4c0c17e497fafd281ceba382b9e4d Mon Sep 17 00:00:00 2001 From: Famiu Haque Date: Thu, 12 May 2022 19:34:38 +0600 Subject: feat(lua): vim.cmd() with kwargs acts like nvim_cmd() #18523 --- runtime/lua/vim/_editor.lua | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua index 9bdbf6d1c7..98921463b3 100644 --- a/runtime/lua/vim/_editor.lua +++ b/runtime/lua/vim/_editor.lua @@ -284,9 +284,33 @@ vim.funcref = function(viml_func_name) return vim.fn[viml_func_name] end --- An easier alias for commands. -vim.cmd = function(command) - return vim.api.nvim_exec(command, false) +--- Execute Vim script commands. +--- +--- Example: +---
+---   vim.cmd('echo 42')
+---   vim.cmd([[
+---     augroup My_group
+---       autocmd!
+---       autocmd FileType c setlocal cindent
+---     augroup END
+---   ]])
+---   vim.cmd({ cmd = 'echo', args = { '"foo"' } })
+--- 
+--- +---@param command string|table Command(s) to execute. +--- If a string, executes multiple lines of Vim script at once. In this +--- case, it is an alias to |nvim_exec()|, where `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 |ex-cmd-index| +function vim.cmd(command) + if type(command) == 'table' then + return vim.api.nvim_cmd(command, {}) + else + return vim.api.nvim_exec(command, false) + end end -- These are the vim.env/v/g/o/bo/wo variable magic accessors. -- cgit