summaryrefslogtreecommitdiff
path: root/fnl/settings
diff options
context:
space:
mode:
Diffstat (limited to 'fnl/settings')
-rw-r--r--fnl/settings/autocmds.fnl54
-rw-r--r--fnl/settings/keymaps.fnl72
-rw-r--r--fnl/settings/options.fnl131
3 files changed, 105 insertions, 152 deletions
diff --git a/fnl/settings/autocmds.fnl b/fnl/settings/autocmds.fnl
index 9b5eac5..2f0a3cd 100644
--- a/fnl/settings/autocmds.fnl
+++ b/fnl/settings/autocmds.fnl
@@ -1,30 +1,30 @@
;; Autocommands for nvim.
-(local auto-cmds [[:FileType
- {:pattern [:qf :help :man :lspinfo]
- :command "nnoremap <silent> <buffer> q :close<CR>"}]
- [:TextYankPost
- {:callback (λ []
- (vim.highlight.on_yank {:higroup :Visual
- :timeout 200}))}]
- [:BufWinEnter {:command "setlocal formatoptions-=cro"}]
- [:FileType {:pattern :qf :command "set nobuflisted"}]
- [:FileType
- {:pattern [:gitcommit :markdown] :command "setlocal wrap"}]
- [:VimResized {:command "tabdo wincmd ="}]
- [[:FocusGained :BufEnter :CursorHold :CursorHoldI]
- {:pattern "*"
- :callback (fn []
- (when (= (vim.fn.mode) :n)
- (vim.cmd :checktime)))}]
- [[:InsertLeave :WinEnter]
- {:callback (λ []
- (let [cursorline (require :settings.cursorline)]
- cursorline.show))}]
- [[:InsertEnter :WinLeave]
- {:callback (λ []
- (let [cursorline (require :settings.cursorline)]
- cursorline.hide))}]])
+(import-macros {: autocmds} :macros)
-(let [{: create-auto-cmds} (require :util.cmds)]
- (create-auto-cmds auto-cmds))
+(autocmds
+ [:FileType
+ {:pattern [:qf :help :man :lspinfo]
+ :command "nnoremap <silent> <buffer> q :close<CR>"}]
+ [:TextYankPost
+ {:callback (λ []
+ (vim.highlight.on_yank {:higroup :Visual
+ :timeout 200}))}]
+ [:BufWinEnter {:command "setlocal formatoptions-=cro"}]
+ [:FileType {:pattern :qf :command "set nobuflisted"}]
+ [:FileType
+ {:pattern [:gitcommit :markdown] :command "setlocal wrap"}]
+ [:VimResized {:command "tabdo wincmd ="}]
+ [[:FocusGained :BufEnter :CursorHold :CursorHoldI]
+ {:pattern "*"
+ :callback (fn []
+ (when (= (vim.fn.mode) :n)
+ (vim.cmd :checktime)))}]
+ [[:InsertLeave :WinEnter]
+ {:callback (λ []
+ (let [cursorline (require :settings.cursorline)]
+ cursorline.show))}]
+ [[:InsertEnter :WinLeave]
+ {:callback (λ []
+ (let [cursorline (require :settings.cursorline)]
+ cursorline.hide))}])
diff --git a/fnl/settings/keymaps.fnl b/fnl/settings/keymaps.fnl
index 14cd160..fcc7511 100644
--- a/fnl/settings/keymaps.fnl
+++ b/fnl/settings/keymaps.fnl
@@ -1,44 +1,34 @@
;; Custom keymappings.
-(local opts {:noremap true :silent true})
+(import-macros {: keymaps} :macros)
-(local mappings [;;Remap space as leader key
- ["" :<Space> :<Nop> {}]
- ;; Normal ;;
- ;; Resize with arrows
- [:n :<m-f> :<c-w>+ {}]
- [:n :<m-p> :<c-w>- {}]
- [:n "<m-,>" :<c-w>5< {}]
- [:n :<m-.> :<c-w>5> {}]
- ;; Visual ;;
- ;; Stay in indent mode
- [:v "<" :<gv {}]
- [:v ">" :>gv {}]
- ;; Visual Block ;;
- ;; Move text up and down
- [:x :J ":move '>+1<CR>gv-gv" {}]
- [:x :K ":move '<-2<CR>gv-gv" {}]
- ;; Move text up and down
- [:v :<c-n> ":m .+1<CR>==" {}]
- [:v :<c-e> ":m .-2<CR>==" {}]
- [:v :p "\"_dP" {}]
- ;; Splits
- [:n :<m-s> :<cmd>split<CR> {}]
- [:n :<m-t> :<cmd>vsplit<CR> {}]
- ;; Buf navigation
- [:n :<c-n> :<cmd>bprev<CR> {}]
- [:n :<c-e> :<cmd>bnext<CR> {}]
- ;; Jump half a page and centralize the view
- [:n :<c-d> :<c-d>zz {}]
- [:n :<c-u> :<c-u>zz {}]
- ;; Remove highlighted search
- [:n :<m-h> :<cmd>nohlsearch<CR> {}]
- ;; jump to eol in insert mode
- [:i :<c-e> :<c-o>$ {}]
- ;; Force refresh
- [:n :mj "<cmd>:e<CR>" {:desc :Refresh}]])
-
-(each [_ mapping (ipairs mappings)]
- (match mapping
- [mode key cmd desc]
- (vim.api.nvim_set_keymap mode key cmd (vim.tbl_extend :force opts desc))))
+(keymaps
+ ;; Resize with arrows
+ [:n :<m-f> :<c-w>+ {}]
+ [:n :<m-p> :<c-w>- {}]
+ [:n "<m-,>" :<c-w>5< {}]
+ [:n :<m-.> :<c-w>5> {}]
+ ;; Stay in indent mode
+ [:v "<" :<gv {}]
+ [:v ">" :>gv {}]
+ ;; Move text up and down
+ [:x :J ":move '>+1<CR>gv-gv" {}]
+ [:x :K ":move '<-2<CR>gv-gv" {}]
+ [:v :<c-n> ":m .+1<CR>==" {}]
+ [:v :<c-e> ":m .-2<CR>==" {}]
+ [:v :p "\"_dP" {}]
+ ;; Splits
+ [:n :<m-s> :<cmd>split<CR> {}]
+ [:n :<m-t> :<cmd>vsplit<CR> {}]
+ ;; Buf navigation
+ [:n :<c-n> :<cmd>bprev<CR> {}]
+ [:n :<c-e> :<cmd>bnext<CR> {}]
+ ;; Jump half a page and centralize the view
+ [:n :<c-d> :<c-d>zz {}]
+ [:n :<c-u> :<c-u>zz {}]
+ ;; Remove highlighted search
+ [:n :<m-h> :<cmd>nohlsearch<CR> {}]
+ ;; Jump to eol in insert mode
+ [:i :<c-e> :<c-o>$ {}]
+ ;; Force refresh
+ [:n :mj "<cmd>:e<CR>" {:desc :Refresh}])
diff --git a/fnl/settings/options.fnl b/fnl/settings/options.fnl
index e7ece5f..a659aae 100644
--- a/fnl/settings/options.fnl
+++ b/fnl/settings/options.fnl
@@ -1,91 +1,54 @@
;; Sets options in neovim
-(local spellfile (.. (os.getenv :XDG_CONFIG_HOME) :/nvim/spell/en.utf-8.add))
+(import-macros {: set-opts} :macros)
-(local opts {;; creates a backup file
- :backup false
- ;; allows neovim to access the system clipboard
- :clipboard :unnamedplus
- ;; more space in the neovim command line for displaying messages
- :cmdheight 1
- ;; mostly just for cmp
- :completeopt {:menuone :noselect}
- ;; so that `` is visible in markdown files
- :conceallevel 0
- ;; the encoding written to a file
- :fileencoding :utf-8
- ;; highlight all matches on previous search pattern
- :hlsearch true
- ;; ignore case in search patterns
- :ignorecase true
- ;; disable the mouse to be used in neovim
- :mouse ""
- ;; pop up menu height
- :pumheight 10
- ;; we don't need to see things like ;; INSERT ;; anymore
- :showmode false
- ;; never show tabs
- :showtabline 0
- ;; smart case
- :smartcase true
- ;; make indenting smarter again
- :smartindent true
- ;; force all horizontal splits to go below current window
- :splitbelow true
- ;; force all vertical splits to go to the right of current window
- :splitright true
- ;; creates a swapfile
- :swapfile false
- ;; set term gui colors (most terminals support this)
- :termguicolors true
- ;; time to wait for a mapped sequence to complete (in milliseconds)
- :timeoutlen 1000
- ;; enable persistent undo
- :undofile true
- ;; faster completion (4000ms default)
- :updatetime 1000
- ;; if a file is being edited by another program (or was written
- ;; to file while editing with another program), it is not allowed
- ;; to be edited
- :writebackup false
- ;; convert tabs to spaces
- :expandtab true
- ;; the number of spaces inserted for each indentation
- :shiftwidth 2
- ;; insert 2 spaces for a tab
- :tabstop 2
- ;; highlight the current line
- :cursorline true
- ;; set numbered lines
- :number true
- ;; set relative numbered lines
- :relativenumber true
- ;; set number column width to 2 {default 4}
- :numberwidth 2
- ;; always show the sign column, otherwise it would shift the text
- ;; each time
- :signcolumn :yes
- ;; display lines as one long line
- :wrap false
- :laststatus 3
- :autoread true
- ;; is one of my fav
- :scrolloff 8
- :sidescrolloff 8
- :colorcolumn :88
- :shortmess :filnxtToOFWIcC
- :spell true
- : spellfile
- :spelllang [:en_us]
- ;; the font used in graphical neovim applications
- :guifont "monospace:h17"
- :splitkeep :screen
- :inccommand :split
- :winborder :single
- :shada ["'10" :<0 :s10 :h]})
+(local spellfile (.. (os.getenv :XDG_CONFIG_HOME) :/nvim/spell/en.utf-8.add))
-(each [k v (pairs opts)]
- (tset vim.opt k v))
+(set-opts {:backup false
+ :clipboard :unnamedplus
+ :cmdheight 1
+ :completeopt {:menuone :noselect}
+ :conceallevel 0
+ :fileencoding :utf-8
+ :hlsearch true
+ :ignorecase true
+ :mouse ""
+ :pumheight 10
+ :showmode false
+ :showtabline 0
+ :smartcase true
+ :smartindent true
+ :splitbelow true
+ :splitright true
+ :swapfile false
+ :termguicolors true
+ :timeoutlen 1000
+ :undofile true
+ :updatetime 1000
+ :writebackup false
+ :expandtab true
+ :shiftwidth 2
+ :tabstop 2
+ :cursorline true
+ :number true
+ :relativenumber true
+ :numberwidth 2
+ :signcolumn :yes
+ :wrap false
+ :laststatus 3
+ :autoread true
+ :scrolloff 8
+ :sidescrolloff 8
+ :colorcolumn :88
+ :shortmess :filnxtToOFWIcC
+ :spell true
+ : spellfile
+ :spelllang [:en_us]
+ :guifont "monospace:h17"
+ :splitkeep :screen
+ :inccommand :split
+ :winborder :single
+ :shada ["'10" :<0 :s10 :h]})
(vim.opt.jumpoptions:append :stack)