-
Notifications
You must be signed in to change notification settings - Fork 0
/
vim_cheatsheet
160 lines (125 loc) · 4.55 KB
/
vim_cheatsheet
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
157
158
159
>>> VIM / NVIM <<<
https://vim.rtorr.com/
General:
u - undo
ctrl-r - undo undo
gg - goto first line
G - goto last line
move up/down a half screen
ctrl-u
ctrl-d
move up/down a whole screen
ctrl-b
ctrl-f
Move screen view, but leave cursor
ctrl-e - move view up
ctrl-y - move vier down
Indent lines:
< - one tab back
> - one tab forward
= on a visual selection will attempt to auto inden
searching:
/<search-term>
n - next
N - previous
ggn - first match in file
GN - last match in file
* - in normal mode search forward for word at caret
g* - partially match words as well
# - in normal mode search nackwards for word at caret
g# partially match words as well
/ ctrl-r ctrl-w - open search bar and copy word at caret into search term
/ arrow-up/down - scroll search history
ctrl-o - go back to position @ before searching
search-replace:
:%s/foo/bar/g - replace all 'foo' with 'bar'
:%s/foo/bar/gc - replace all 'foo' with 'bar', ask for permission for each instance
:%/foo/bar/g - replace all 'foo' with 'bar', only current line
(you can also use ctrl-r ctrl-w to copy current word to search bar)
multiple cursors:
multi_cursor_start_word_key = '<C-n>'
multi_cursor_select_all_word_key = '<A-n>'
multi_cursor_start_key = 'g<C-n>'
multi_cursor_select_all_key = 'g<A-n>'
multi_cursor_next_key = '<C-n>'
multi_cursor_prev_key = '<C-p>'
multi_cursor_skip_key = '<C-x>'
multi_cursor_quit_key = '<Esc>'
nerdtree:
C - change root directory
u - go up one directory
I - toggle show hidden files
R - refresh the tree
? - help
m - file actions menu
ma - make new file
Press o to open the file in a new buffer or open/close directory.
Press t to open the file in a new tab.
Press i to open the file in a new horizontal split.
Press s to open the file in a new vertical split.
Press p to go to parent directory.
Press r to refresh the current directory.
Press m to launch NERDTree menu inside Vim.
nerdcommenter:
<Leader>c<space> - toggle selected text as line comment
<Leader>cs - block comment selection
<Leader>cu - uncomment selection
Split editor:
:vsplit - :vsp - split vertically
:split - :sp - split horizontally
use ctrl-h/j/k/l to navigate between split buffers
resize buffers
vertical
ctrl-w [N]+
ctrl-w [N]-
horizontally
ctrl-w [N]<
ctrl-w [N]>
"Max out the height of the current split
ctrl + w _
"Max out the width of the current split
ctrl + w |
"Normalize all split sizes, which is very handy when resizing terminal
ctrl + w =
"Swap top/bottom or left/right split
Ctrl+W R
"Break out current window into a new tabview
Ctrl+W T
"Close every window in the current tabview but the current one
Ctrl+W o
Tabs:
:tabnew make a new tab
use alt-right/left to cycle between tabs
reorder tabs with ctrl-alt-right/left
:tabedit {file} edit specified file in a new tab
:tabfind {file} open a new tab with filename given, searching the 'path' to find it
:tabclose close current tab
:tabclose {i} close i-th tab
:tabonly close all other tabs (show only the current tab)
:tab ball show each buffer in a tab (up to 'tabpagemax' tabs)
:tab help open a new help window in its own tab page
:tab drop {file} open {file} in a new tab, or jump to a window/tab containing the file
:tab split copy the current window to a new tab of its own
:tabs list all tabs including their displayed windows
:tabm 0 move current tab to first
:tabm move current tab to last
:tabm {i} move current tab to position i+1
Vim Eunuch
:Delete: Delete a buffer and the file on disk simultaneously.
:Unlink: Like :Delete, but keeps the now empty buffer.
:Move: Rename a buffer and the file on disk simultaneously.
:Rename: Like :Move, but relative to the current file's containing directory.
:Chmod: Change the permissions of the current file.
:Mkdir: Create a directory, defaulting to the parent of the current file.
:Cfind: Run find and load the results into the quickfix list.
:Clocate: Run locate and load the results into the quickfix list.
:Lfind/:Llocate: Like above, but use the location list.
:Wall: Write every open window. Handy for kicking off tools like guard.
:SudoWrite: Write a privileged file with sudo.
:SudoEdit: Edit a privileged file with sudo.
File type detection for sudo -e is based on original file name.
New files created with a shebang line are automatically made executable.
New init scripts are automatically prepopulated with /etc/init.d/skeleton.
vim bbye
:Bdelete - instead of :bdelete, closes current buffer, but remians in jumplist
:Bwipeout - instead of :bwipeout, closes current buffer completely