summaryrefslogtreecommitdiff
path: root/nvim/init.fnl
blob: d4b2f737ff97374b75f9bd801fc77f61bd5ff508 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
(macro conf [...]
  (let [bindings [...]
        result []]
    (for [i 1 (length bindings) 2]
      (let [k (. bindings i)
            v (. bindings (+ i 1))]
        (table.insert result `(set ,k ,v))))
    `(do ,(unpack result))))

(conf vim.g.mapleader " "
      vim.g.maplocalleader "\\"
      ;; disable built-in tree 
      vim.g.loaded_netrw 1
      vim.g.loaded_netrwPlugin 1
      ;; enable true color
      vim.opt.termguicolors true
      ;; show line numbers 
      vim.o.number true
      ;; ensure new line at EOF 
      vim.opt.endofline true
      vim.opt.fixendofline true
      ;; tab width
      vim.opt.tabstop 4
      vim.opt.shiftwidth 4
      vim.opt.expandtab true
      ;; disable providers
      vim.g.loaded_perl_provider 0
      vim.g.loaded_ruby_provider 0)

;; cursorline
(vim.cmd "set cursorline")

;; Show diagnostics
(vim.diagnostic.config {:virtual_text      true
                        :signs             true
                        :underline         true
                        :update_in_insert  false})

;; Escape TERMINAL mode using ESC 
(vim.api.nvim_set_keymap 
  "t" "<Esc>" "<C-\\><C-n>" { "desc" "Exit terminal mode" })

;; tab management
(vim.api.nvim_set_keymap
  "n" "t" ":tabnew<Enter>" { "desc" "create new tab" })
(vim.api.nvim_set_keymap
  "n" "T" ":tabn<Enter>" { "desc" "jump to new tab" })
(vim.api.nvim_set_keymap
  "n" "X" ":tabclose<Enter>" { "desc" "close current tab, like Vimium" })

; use custom file type 
(require "filetype")

;; Use Paredit
(vim.api.nvim_create_autocmd
  "FileType" {"pattern" ["clojure" "fennel" "guile" "scheme" "scheme.guile" "lisp"]
              "callback" (lambda [] (vim.treesitter.start))})

;; use lazy.nvim plugin manager
(require "config.lazy")

{:fennel-path "./init.lua"}