ref(nvim): vimscript func to lua
This commit is contained in:
parent
60bcfd24b5
commit
7dda7ec2a0
@ -4,30 +4,15 @@ local keymap = vim.keymap
|
|||||||
vim.g.mapleader = ','
|
vim.g.mapleader = ','
|
||||||
|
|
||||||
|
|
||||||
vim.api.nvim_exec([[
|
function create_function_tabdo(command)
|
||||||
" like tabdo but restore the current tab
|
return function()
|
||||||
function! TabDo(command)
|
local currTab = vim.fn.tabpagenr()
|
||||||
let currTab=tabpagenr()
|
vim.cmd(string.format([[tabdo %s]], command))
|
||||||
execute 'tabdo ' . a:command
|
vim.cmd(string.format([[tabn %s]], currTab))
|
||||||
execute 'tabn ' . currTab
|
end
|
||||||
endfunction
|
end
|
||||||
|
|
||||||
" like bufdo but restore the current buffer
|
keymap.set('n', '<Leader>c', create_function_tabdo('set cursorline!'), {silent = true})
|
||||||
function! BufDo(command)
|
|
||||||
let currBuff=bufnr("%")
|
|
||||||
execute 'bufdo ' . a:command
|
|
||||||
execute 'buffer ' . currBuff
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" like windo but restore the current window
|
|
||||||
function! WinDo(command)
|
|
||||||
let currwin=winnr()
|
|
||||||
execute 'windo ' . a:command
|
|
||||||
execute currwin . 'wincmd w'
|
|
||||||
endfunction
|
|
||||||
]], true)
|
|
||||||
|
|
||||||
keymap.set('n', '<Leader>c', [[:call TabDo('set cursorline!')<CR>]], {silent = true})
|
|
||||||
|
|
||||||
keymap.set('n', '<Leader>/', [[:set invhlsearch<CR>]], {silent = true})
|
keymap.set('n', '<Leader>/', [[:set invhlsearch<CR>]], {silent = true})
|
||||||
|
|
||||||
@ -92,18 +77,34 @@ function create_autocmd_filetype(func)
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
function create_func(ft, cmd)
|
function set_keymap_run_script(cmd)
|
||||||
return function()
|
|
||||||
if vim.bo.filetype == ft then
|
|
||||||
cmd_string = string.format([[:tabnew %% <CR> :terminal %s %% <CR> :set nocursorline number norelativenumber <CR> G <CR>]], cmd)
|
cmd_string = string.format([[:tabnew %% <CR> :terminal %s %% <CR> :set nocursorline number norelativenumber <CR> G <CR>]], cmd)
|
||||||
keymap.set("n", "<Leader>rr", cmd_string, {silent = true})
|
keymap.set("n", "<Leader>rr", cmd_string, {silent = true})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function create_function_create_autocmd_filetype(ft, cmd)
|
||||||
|
return function()
|
||||||
|
if vim.bo.filetype == ft then
|
||||||
|
set_keymap_run_script(cmd)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
create_autocmd_filetype(create_func('python', 'python3'))
|
function create_function_create_autocmd_filename(fn, cmd)
|
||||||
create_autocmd_filetype(create_func('go', 'go run'))
|
return function()
|
||||||
create_autocmd_filetype(create_func('rust', 'cargo run'))
|
if vim.fn.expand('%:t') == fn then
|
||||||
|
set_keymap_run_script(cmd)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
create_autocmd_filetype(create_function_create_autocmd_filetype('python', 'python3'))
|
||||||
|
create_autocmd_filetype(create_function_create_autocmd_filetype('go', 'go run'))
|
||||||
|
create_autocmd_filetype(create_function_create_autocmd_filetype('rust', 'cargo run'))
|
||||||
|
create_autocmd_filetype(create_function_create_autocmd_filetype('markdown', 'glow'))
|
||||||
|
|
||||||
|
create_autocmd_filetype(create_function_create_autocmd_filename('manpage', 'man -P cat -l'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -112,23 +113,26 @@ create_autocmd_filetype(create_func('rust', 'cargo run'))
|
|||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
vim.api.nvim_exec([[
|
|
||||||
function! ToggleRelativeAbsoluteNumber()
|
function toggle_number_style()
|
||||||
if !&number && !&relativenumber
|
|
||||||
set number
|
local number = vim.opt.number["_value"]
|
||||||
set norelativenumber
|
local relativenumber = vim.opt.relativenumber["_value"]
|
||||||
elseif &number && !&relativenumber
|
|
||||||
set nonumber
|
if (not number) and (not relativenumber) then
|
||||||
set relativenumber
|
vim.opt.number = true
|
||||||
elseif !&number && &relativenumber
|
vim.opt.relativenumber = false
|
||||||
set number
|
elseif (number) and (not relativenumber) then
|
||||||
set relativenumber
|
vim.opt.number = false
|
||||||
elseif &number && &relativenumber
|
vim.opt.relativenumber = true
|
||||||
set nonumber
|
elseif (not number) and (relativenumber) then
|
||||||
set norelativenumber
|
vim.opt.number = true
|
||||||
endif
|
vim.opt.relativenumber = true
|
||||||
endfunction
|
elseif (number) and (relativenumber) then
|
||||||
]], true)
|
vim.opt.number = false
|
||||||
|
vim.opt.relativenumber = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Toggle line number style
|
-- Toggle line number style
|
||||||
keymap.set('n', '<Leader>l', [[:call TabDo('call ToggleRelativeAbsoluteNumber()') <CR>]], {silent = true})
|
keymap.set('n', '<Leader>l', create_function_tabdo('lua toggle_number_style()'), {silent = true})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user