vim: use nvim 0.7 new API for create autocmds in lua
This commit is contained in:
parent
cedb033443
commit
10466e0391
1 changed files with 33 additions and 28 deletions
|
@ -1,31 +1,36 @@
|
|||
local function make_autocmds(groups)
|
||||
for name, commands in pairs(groups) do
|
||||
vim.cmd('augroup my_' .. name)
|
||||
vim.cmd('autocmd!')
|
||||
for _, item in ipairs(commands) do
|
||||
vim.cmd('autocmd ' .. table.concat(item, ' '))
|
||||
end
|
||||
vim.cmd('augroup END')
|
||||
local augroup = vim.api.nvim_create_augroup
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
|
||||
local id = augroup("my_autocmds", { clear = true} )
|
||||
|
||||
autocmd({'BufNewFile', 'BufRead'}, {
|
||||
desc = 'Make it possible to use `gf` to jump to my neovim lua modules.',
|
||||
group = id,
|
||||
pattern = 'init.lua',
|
||||
command = "setlocal path+=~/.config/nvim/lua includeexpr=substitute(v:fname,'\\\\.','/','g')"
|
||||
})
|
||||
|
||||
autocmd('InsertEnter', {
|
||||
desc = 'Disable `cursorline` when entering Insert mode.',
|
||||
group = id,
|
||||
pattern = '*',
|
||||
callback = function(args)
|
||||
vim.w.had_cursorline = vim.opt.cursorline:get()
|
||||
vim.opt.cursorline = false
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
make_autocmds {
|
||||
buffers = {
|
||||
-- Make it possible to use `gf` to jump to my configuration modules.
|
||||
{ 'BufNewFile,BufRead', 'init.lua',
|
||||
"setlocal path+=~/.config/nvim/lua includeexpr=substitute(v:fname,'\\\\.','/','g')"},
|
||||
},
|
||||
windows = {
|
||||
-- Disable cursorline when entering Insert mode (but remember it)...
|
||||
{ 'InsertEnter', '*',
|
||||
[[let w:had_cursorline=&cursorline | set nocursorline]] },
|
||||
-- ...and re-enable when leaving if it had been set before.
|
||||
{ 'InsertLeave', '*',
|
||||
[[if exists('w:had_cursorline') | let &cursorline=w:had_cursorline | endif]] },
|
||||
},
|
||||
yank = {
|
||||
-- Briefly highlight yanked text.
|
||||
{ 'TextYankPost', '*', 'silent! lua vim.highlight.on_yank()' },
|
||||
},
|
||||
}
|
||||
autocmd('InsertLeave', {
|
||||
desc = 'Enable `cursorline` when leaving Insert mode (if it was set before entering).',
|
||||
group = id,
|
||||
pattern = '*',
|
||||
callback = function(args) vim.opt.cursorline = vim.w.had_cursorline end
|
||||
})
|
||||
|
||||
autocmd('TextYankPost', {
|
||||
desc = 'Briefly highlight yanked text.',
|
||||
group = id,
|
||||
pattern = '*',
|
||||
callback = function(args) vim.highlight.on_yank() end
|
||||
})
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue