From dba88363815b98abbac1bc5fab0c16f1b2d2461a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 6 May 2023 18:17:16 +0100 Subject: [PATCH] home: vim: numbertoggle: use lua autocommands A nice next step would be to use actual lua callbacks instead of the VimL command. --- home/vim/plugin/numbertoggle.vim | 34 +++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/home/vim/plugin/numbertoggle.vim b/home/vim/plugin/numbertoggle.vim index d9a969d..1b6a585 100644 --- a/home/vim/plugin/numbertoggle.vim +++ b/home/vim/plugin/numbertoggle.vim @@ -1,13 +1,25 @@ -" Idea for toggling taken from jeffkreeftmeijer +lua << EOF +-- Show lines numbers +vim.opt.number = true -" Show line numbers -set number +local numbertoggle = vim.api.nvim_create_augroup("numbertoggle", { clear = true }) -augroup numbertoggle - autocmd! - " Toggle numbers between relative and absolute when changing buffers - autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu | set rnu | endif - autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif - " Disable line numbers and relative line numbers in terminal - autocmd TermOpen * setlocal nonu nornu -augroup END +-- Toggle numbers between relative and absolute when changing buffers +vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" }, { + pattern = "*", + group = numbertoggle, + command = "if &nu | setlocal rnu | endif", +}) +vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "WinLeave" }, { + pattern = "*", + group = numbertoggle, + command = "if &nu | setlocal nornu | endif", +}) + +-- Never show the sign column in a terminal buffer +vim.api.nvim_create_autocmd({ "TermOpen" }, { + pattern = "*", + group = numbertoggle, + command = "setlocal nonu nornu", +}) +EOF