about summary refs log tree commit diff stats
path: root/modules/by-name/zs/zsh/config/keymaps/vicmd.zsh
blob: ceb4f3481278abc08c5cc061d002f121ba6cb045 (plain) (blame)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
bindkey -N vicmd

# Bind in string to out string
bindkey -s -M vicmd "gUU" "gUgU"
bindkey -s -M vicmd "guu" "gugu"
bindkey -s -M vicmd "g~~" "g~g~"

# Movement
bindkey -M vicmd "h" vi-backward-char
bindkey -M vicmd "t" history-substring-search-down
bindkey -M vicmd "n" history-substring-search-up
bindkey -M vicmd "s" vi-forward-char

# Search history
bindkey -M vicmd "/" atuin-up-search-vicmd
bindkey -M vicmd "?" atuin-down-search-vicmd
bindkey -M vicmd "l" vi-repeat-search
bindkey -M vicmd "L" vi-rev-repeat-search

bindkey -M vicmd "f" vi-find-next-char
bindkey -M vicmd "F" vi-find-prev-char

# Tell the user that more ESC is not possible
bindkey -M vicmd "^[" beep


# > Fetch the history line specified by the numeric argument.
# > This defaults to the current history line (i.e. the one that isn't history yet).
bindkey -M vicmd "G" vi-fetch-history
bindkey -M vicmd "gg" beginning-of-buffer-or-history

bindkey -M vicmd -R "1"-"9" digit-argument

bindkey -M vicmd "^L" clear-screen

bindkey -M vicmd ":" execute-named-cmd

bindkey -M vicmd "=" list-choices

bindkey -M vicmd "^V" vi-quoted-insert

bindkey -M vicmd "#" vi-pound-insert
bindkey -M vicmd "u" undo


bindkey -M vicmd "A" vi-add-eol
bindkey -M vicmd "i" vi-insert
bindkey -M vicmd "a" vi-add-next
bindkey -M vicmd "I" vi-insert-bol
bindkey -M vicmd "O" vi-open-line-above
bindkey -M vicmd "o" vi-open-line-below

bindkey -M vicmd "c" vi-change
bindkey -M vicmd "C" vi-change-eol
bindkey -M vicmd "S" vi-change-whole-line


bindkey -M vicmd "b" vi-backward-word
bindkey -M vicmd "ge" vi-backward-word-end
bindkey -M vicmd "B" vi-backward-blank-word
bindkey -M vicmd "gE" vi-backward-blank-word-end

bindkey -M vicmd "w" vi-forward-word
bindkey -M vicmd "e" vi-forward-word-end
bindkey -M vicmd "W" vi-forward-blank-word
bindkey -M vicmd "E" vi-forward-blank-word-end


bindkey -M vicmd "x" vi-delete-char
bindkey -M vicmd "X" vi-backward-delete-char
bindkey -M vicmd "d" vi-delete
bindkey -M vicmd "D" vi-kill-eol

bindkey -M vicmd "y" vi-yank
bindkey -M vicmd "Y" vi-yank-whole-line
bindkey -M vicmd "p" vi-put-after
bindkey -M vicmd "P" vi-put-before


bindkey -M vicmd "~" vi-swap-case
bindkey -M vicmd "g~" vi-oper-swap-case
bindkey -M vicmd "gU" vi-up-case
bindkey -M vicmd "gu" vi-down-case


bindkey -M vicmd "\^" vi-first-non-blank
bindkey -M vicmd "\$" vi-end-of-line
bindkey -M vicmd "0" vi-digit-or-beginning-of-line

bindkey -M vicmd "|" vi-goto-column
bindkey -M vicmd "\`" vi-goto-mark
bindkey -M vicmd "'" vi-goto-mark-line


bindkey -M vicmd ">" vi-indent
bindkey -M vicmd "<" vi-unindent


bindkey -M vicmd "%" vi-match-bracket


bindkey -M vicmd "." vi-repeat-change
bindkey -M vicmd ";" vi-repeat-find
bindkey -M vicmd "," vi-rev-repeat-find


bindkey -M vicmd "R" vi-replace
bindkey -M vicmd "r" vi-replace-chars
# bindkey -M vicmd "s" vi-substitute


bindkey -M vicmd "\"" vi-set-buffer
bindkey -M vicmd "m" vi-set-mark


bindkey -M vicmd "ga" what-cursor-position

bindkey -M vicmd "V" visual-line-mode
bindkey -M vicmd "v" visual-mode

# Selection
bindkey -M vicmd "aW" select-a-blank-word
bindkey -M vicmd "aa" select-a-shell-word
bindkey -M vicmd "aw" select-a-word
bindkey -M vicmd "iW" select-in-blank-word
bindkey -M vicmd "ia" select-in-shell-word
bindkey -M vicmd "iw" select-in-word
bindkey -M vicmd "a(" select-bracketed
bindkey -M vicmd "a)" select-bracketed
bindkey -M vicmd "a<" select-bracketed
bindkey -M vicmd "a>" select-bracketed
bindkey -M vicmd "aB" select-bracketed
bindkey -M vicmd "a[" select-bracketed
bindkey -M vicmd "a]" select-bracketed
bindkey -M vicmd "ab" select-bracketed
bindkey -M vicmd "a{" select-bracketed
bindkey -M vicmd "a}" select-bracketed
bindkey -M vicmd "i(" select-bracketed
bindkey -M vicmd "i)" select-bracketed
bindkey -M vicmd "i<" select-bracketed
bindkey -M vicmd "i>" select-bracketed
bindkey -M vicmd "iB" select-bracketed
bindkey -M vicmd "i[" select-bracketed
bindkey -M vicmd "i]" select-bracketed
bindkey -M vicmd "ib" select-bracketed
bindkey -M vicmd "i{" select-bracketed
bindkey -M vicmd "i}" select-bracketed
bindkey -M vicmd "a'" select-quoted
bindkey -M vicmd "a\"" select-quoted
bindkey -M vicmd "a\`" select-quoted
bindkey -M vicmd "i'" select-quoted
bindkey -M vicmd "i\"" select-quoted
bindkey -M vicmd "i\`" select-quoted

# Support pasted text
bindkey -M vicmd "^[[200~" bracketed-paste