summaryrefslogtreecommitdiff
path: root/fnl/settings/keymaps.fnl
blob: bf68c384b3a6bd18790bbbbd0e5bd2c57d9893e5 (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
;; 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 :<S-l> ":bnext<CR>" opts)
(map :n :<S-h> ":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 :<A-j> ":move '>+1<CR>gv-gv" opts)
(map :x :<A-k> ":move '<-2<CR>gv-gv" opts)

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