(import-macros {: au! : ac!} :nvrc.macro.event) (import-macros {: set! : setl!} :nvrc.macro.set) (local {: echo!} (require :nvrc.lib.io)) (local {: line : mode} vim.fn) (fn cmd! [...] (vim.cmd ...)) (fn bufexists? [...] (= (vim.fn.bufexists ...) 1)) ; Restore cursor style to beam on exit (au! restore-cursor (ac! VimLeave * #(set! guicursor ["a:ver75-blinkon0"]))) ; Restore the last cursor line (au! restore-last-cursor-line (ac! BufReadPost * #(if (and (> (line "'\"") 1) (<= (line "'\"") (line "$"))) (cmd! "normal! g'\"")))) ; Resize splits on window resize (au! resize-splits-on-resize (ac! VimResized * "wincmd =")) ;; Read file when it changes on disk (au! read-file-on-disk-change (ac! [FocusGained BufEnter CursorHold CursorHoldI] * #(if (and (not= :c (mode)) (not (bufexists? "[Command Line]"))) (cmd! "checktime"))) (ac! FileChangedShellPost * #(echo! "File changed on disk. Buffer reloaded."))) (au! terminal-options ;; Enter Terminal-mode (insert) automatically (ac! TermOpen * "startinsert") ;; Disables line number on terminal buffers (ac! TermOpen * #(do (setl! nonumber) (setl! norelativenumber))) ;; Disables spell on terminal buffers (ac! TermOpen * #(setl! nospell)) ;; Disables sign column on terminal buffers (ac! TermOpen * #(setl! signcolumn :no)) ;; Disables colorcolumn on terminal buffers (ac! TermOpen * #(setl! colorcolumn [])))