;; Autocommands for nvim. (local cursorline (require :util.cursorline)) (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 :org :callback (fn [] (tset vim.opt_local :conceallevel 2) (tset vim.opt_local :concealcursor :nc))}] [:FileType {:pattern :qf :command "set nobuflisted"}] [:FileType {:pattern [:gitcommit :markdown] :command "setlocal wrap"}] [:FileType {:pattern [:NeogitStatus :NeogitCommitMessage :NeogitNotification :NeogitCommitView :spectre_panel] :command "setlocal spell!"}] [:TermOpen {:pattern ["term://*toggleterm#*"] :command "setlocal spell!"}] [:VimResized {:command "tabdo wincmd ="}] [[:FocusGained :BufEnter :CursorHold :CursorHoldI] {: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" {}))}] [[:InsertLeave :WinEnter] {:callback cursorline.show}] [[:InsertEnter :WinLeave] {:callback cursorline.hide}]]) (each [_ autocmd (ipairs autocmds)] (match autocmd [event opts] (vim.api.nvim_create_autocmd event opts)))