summaryrefslogtreecommitdiff
path: root/fnl/settings/keymaps.fnl
blob: 8a30138648404492c6a42dc40151797cac11b8fc (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
;; Custom keymappings.
(module settings.keymaps {autoload {nvim aniseed.nvim}})

(def- opts {:noremap true :silent true})
(defn- map [mode lhs rhs opt] (nvim.set_keymap mode lhs rhs opt))

;;Remap space as leader key
(map "" :<Space> :<Nop> opts)
(set nvim.g.mapleader " ")
(set nvim.g.maplocalleader " ")

;; Modes
;;   normal_mode = "n"
;;   insert_mode = "i"
;;   visual_mode = "v"
;;   visual_block_mode = "x"
;;   term_mode = "t"
;;   command_mode = "c"

;; Normal ;;
;; Better window navigation
(map :n :<C-h> :<C-w>h opts)
(map :n :<C-j> :<C-w>j opts)
(map :n :<C-k> :<C-w>k opts)
(map :n :<C-l> :<C-w>l opts)

;; Resize with arrows
(map :n :<C-Up> ":resize -2<CR>" opts)
(map :n :<C-Down> ":resize +2<CR>" opts)
(map :n :<C-Left> ":vertical resize -2<CR>" opts)
(map :n :<C-Right> ":vertical resize +2<CR>" opts)

;; Navigate buffers
;; (map :n :<tab> ":bnext<CR>" opts)
;; (map :n :<S-tab> ":bprevious<CR>" opts)

;; Visual ;;
;; Stay in indent mode
(map :v "<" :<gv opts)
(map :v ">" :>gv opts)

;; Visual Block ;;
;; Move text up and down
(map :x :J ":move '>+1<CR>gv-gv" opts)
(map :x :K ":move '<-2<CR>gv-gv" opts)
(map :x :<m-j> ":move '>+1<CR>gv-gv" opts)
(map :x :<m-k> ":move '<-2<CR>gv-gv" opts)

;; Move text up and down
(map :v :<m-j> ":m .+1<CR>==" opts)
(map :v :<m-k> ":m .-2<CR>==" opts)
(map :v :p "\"_dP" opts)

;; Splits
(map :n :<m-s> :<cmd>split<CR> opts)
(map :n :<C-s> :<cmd>split<CR> opts)
(map :n :<m-v> :<cmd>vsplit<CR> opts)

(map :n :<m-n> :<cmd>nohlsearch<CR> opts)