;; Autocommands for nvim. (fn create-autocmd [event opts] (vim.api.nvim_create_autocmd event opts)) (local autocmds [[:FileType {:pattern [:qf :help :man :lspinfo :spectre_panel] :command "nnoremap q :close"}] [:TextYankPost {:callback (lambda [] (vim.highlight.on_yank {:higroup :Visual :timeout 200}))}] [:FileType {:pattern :lir :callback (fn [] (tset vim.opt_local :number false) (tset vim.opt_local :relativenumber false))}] [:BufWinEnter {:command "setlocal formatoptions-=cro"}] [:FileType {:pattern :qf :command "set nobuflisted"}] [:FileType {:pattern [:gitcommit :markdown] :command "setlocal wrap"}] [:FileType {:pattern [:NeogitStatus :NeogitCommitMessage :NeogitNotification :NeogitCommitView] :command "setlocal spell!"}] [:TermOpen {:pattern ["term://*toggleterm#*"] :command "setlocal spell!"}] [:VimResized {:command "tabdo wincmd ="}] [:FocusGained {:command :checktime}] [:TermOpen {:pattern "term://*toggleterm#*" :callback (fn [] (vim.keymap.set :t : "wincmd h" {}) (vim.keymap.set :t : "wincmd j" {}) (vim.keymap.set :t : "wincmd k" {}) (vim.keymap.set :t : "wincmd l" {}))}]]) (each [_ autocmd (ipairs autocmds)] (match autocmd [event opts] (create-autocmd event opts)))