vim: add mapping to execute multiple lines of lua code
This commit is contained in:
parent
02da9a1479
commit
4060d091d7
1 changed files with 13 additions and 5 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue