소개
- lua에서 mode 인자를 받을 때
string
,table
모두를 구별하지 않고 처리하기 - 이는
vim.keymap.set()
함수에서 사용되고 있는 방법이다. - 내부에서
type
이table
이 아니면{mode}
로 태이블로 바꾸고 For문으로 처리한다.
예제
-- 함수 정의
function my_map(mode, short, command, opts)
local modes = type(mode) == 'table' and mode or { mode }
for _, m in ipairs(modes) do
vim.keymap.set(m, short, command, opts)
end
end
-- 사용
my_map('n','<leader>r', ':source %<CR>', {noremap=true})
my_map({ 'n','v' },'<leader>r', ':source %<CR>', {noremap=true})