vim: add mapping to execute multiple lines of lua code

This commit is contained in:
Fernando Schauenburg 2022-07-25 23:30:38 +02:00
parent 02da9a1479
commit 4060d091d7

View file

@ -1,11 +1,19 @@
vim.bo.tabstop = 2 vim.bo.tabstop = 2
local nmap = require 'fs.util'.nmap
local buffer = { buffer = true } local buffer = { buffer = true }
-- execute the current line local exec_current_lua_line = function()
nmap { '<leader>x', [[<cmd>call luaeval(getline("."))<cr>]], buffer } vim.fn.luaeval(vim.fn.getline('.'))
end
-- save and execute the current file local exec_current_lua_selection = function()
nmap { '<leader><leader>x', '<cmd>silent write | luafile %<cr>', buffer } local selection = { vim.fn.line('v'), vim.fn.line('.') }
local first, last = vim.fn.min(selection), vim.fn.max(selection)
local code = vim.fn.join(vim.fn.getline(first, last), '\n')
loadstring(code)()
end
vim.keymap.set('n', '<leader>x', exec_current_lua_line, buffer)
vim.keymap.set('x', '<leader>x', exec_current_lua_selection, buffer)
vim.keymap.set('n', '<leader><leader>x', '<cmd>write | luafile %<cr>', buffer)