summaryrefslogtreecommitdiff
path: root/fnl/settings/keymaps.fnl
blob: 85e5a76fe0e1c6c16e400cd8788ff4ed0e3c16b2 (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
;; 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 " ")

;; 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)

;; 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)

(map :n :Q "<cmd>:q<CR>" opts)