vim-cheet-sheet/new-info.txt

206 lines
9.5 KiB
Plaintext
Raw Normal View History

2025-05-01 06:28:28 +00:00
Commands:
ZZ -- write out and exit
75 i ! <Esc> -- insert "!" 75 times
75 a ! <Esc> -- append "!" 75 times
Ctrl-] -- move to |hyperlink|
Ctrl-O -- come back from hyperlink
2025-05-01 07:31:26 +00:00
Help:
:help index -- complete index of all Vim commands
:help Ctrl-W -- find help with window management command
:help usr_toc.txt -- all user manuals breef look
2025-05-01 06:28:28 +00:00
2025-05-02 09:43:53 +00:00
2025-05-01 13:53:35 +00:00
Word / file navigation (3):
2025-05-01 06:28:28 +00:00
fh | 3fl -- move cursor to the "h" letter of the current line
f<Esc> -- aborts search
Fh | 3Fl -- like above, but searches to the left
tl | 3tl -- like fh, but cursor stops before the letter
Tl | 3Tl -- like above, but searches to the left
ge -- moves to the previous end of the word
$ | 5$ -- to the end of the line
^ -- to begin of the first word in line
0 -- to begin of the line
2025-05-01 07:16:50 +00:00
25% -- moves you to the 1/4 of the file
H -- move cursor to the top line of the current window
M -- move cursor to the middle line of the current window
L -- move cursor to the bottom line of the current window
Ctrl-G -- get where you are in the file
zt -- like below, but to the top
zz -- moves context to the middle of the current cursor pos
zt -- like above, but to the bottom
* -- finds word under cursor in the file
# -- same like above, but to the other direction
/the\> -- finds only words that ends in "the "
/\<the\> -- finds only " the " matches
`` -- go to the prev position (mark, mark -- pos before jump)
Ctrl-O -- go to the previous jump (mark)
Ctrl-I -- go to the next jump (mark)
m[a-z] -- set mark with letter name
'[a-z] -- move to the row with the mark
`[a-z] -- move to the row and column with the mark
:set hlsearch -- will highlight all matches
:set ignorecase -- to ignore letter case during searches
:set number -- show line numbers
:set nonumber -- unshow line numbers
:set ruler -- show in the bottom right corner where is your cursor
2025-05-01 07:31:26 +00:00
:marks -- see all available marks
2025-05-02 04:24:48 +00:00
:marks p -- to see where mark are specified
:marks pF -- to see where several marks are specified
2025-05-01 07:31:26 +00:00
2025-05-02 09:43:53 +00:00
2025-05-01 13:53:35 +00:00
Making small changes (4):
2025-05-01 07:31:26 +00:00
d$ -- deletes to the end of the line
cc -- like dd, but changes line
c$ -- changes all to the end of the line
X -- delete prev symbol
D -- delete to the end of the line
C -- change to end of the line
s -- change one character
S -- change a whole line
2025-05-01 13:53:35 +00:00
r | 4rx -- replace current symbol, not enters in insert mode
. -- repeat the change
O | o -- in visual mode goes to the other corner of selected
y -- yank operator. yw - yank word, y2w - yank 2 words
Y | yy -- yank whole line
y$ -- yank to the end of the line
iw | aw -- Call to word text object. iw - "Inner word",
2025-05-02 04:24:48 +00:00
aw - "A word" (Try to use in visual mode or delete).
2025-05-01 13:53:35 +00:00
daw -- delete a word. You can use it even in a mid of the word
is | as -- Call to sentence text object. "as" includes space after
is - "Inner Sentence", as - "A Sentence"
cis -- change whole sentence
R -- enter in replace mode. backspace works like undo.
~ -- Change case of the character under cursor
I -- insert to the begin of the line
A -- append to the end of the line
2025-05-02 09:43:53 +00:00
2025-05-01 13:53:35 +00:00
Editing more than one file (7):
:edit foo.txt -- opens other file instead of current
:write -- save current file delta
:edit! foo.txt -- force to discard your changes
vim one.c two.c three.c -- open a sequence of files
:next -- switch to next file
:next! -- like above, but not save changes
:wnext -- like above, but save changes
2025-05-02 04:24:48 +00:00
:args -- see the files you started Vim with
:previous
:wprevious
:last
:first
:2next
:set autowrite -- always write to modified files after switch
:set noautowrite -- turn off write to modified files
:args one.c six.c -- redefine the list of files without the need to
exit Vim and start it again
:args! -- abandon the changes
Ctrl-^ -- back to previous file
`. -- jump to position where you did the last change
"fyas -- use f register for yank to in sentence
"l3Y -- yank three whole lines to the l register
"fp -- put register buffer to the cursor position
"wdaw -- delete text to register
2025-05-02 09:43:53 +00:00
:write >> myfile -- append current file to another file. To append only
few lines do it in visual mode.
vim -R file -- open file in readonly mode. Can edit it by appending
! to the write command
vim -M file -- do it to forbid making any changes in a file
:saveas move.c -- to save current file to the other file and start
edit other file
2025-05-01 06:28:28 +00:00
2025-05-02 09:43:53 +00:00
Splitting windows (8). Skipped 8.07 about vimdiff:
2025-05-01 07:31:26 +00:00
Always starts from Ctrl-W
Ctrl-W h -- to the left window
Ctrl-W j -- to the bottom window
Ctrl-W l -- to the top window
Ctrl-W l -- to the right window
Ctrl-H H -- move window to left
Ctrl-H J -- move window to bottom
Ctrl-H K -- move window to top
Ctrl-H L -- move window to right
2025-05-02 09:43:53 +00:00
:qall -- close all winfows
:wall -- write all changes
:wqall -- write and close all files
:qall -- close Vim and throw all changes
vim -o|-O -- open several files in split mode
:[vertical] all -- open args files in split mode
vimdiff one.c two.c -- open in diff mode
:leftabove {cmd} -- left or above the current window
:aboveleft {cmd} -- idem
:rightbelow {cmd} -- right or below the current window
:belowright {cmd} -- idem
:topleft {cmd} -- at the top or left of the Vim window
:botright {cmd} -- at the bottom or right of the Vim window
:tabedit -- open another file in tabe mode
gt -- go to the next tab
gT -- go to the previous tab
:tabonly -- to close all other tabs
2025-05-01 06:28:28 +00:00
2025-05-02 09:43:53 +00:00
Making big changes (10):
q[a-z] -- start and end record commands
@[a-z] -- execute recorded command
@@ -- execute previous executed recorded command
Example:
qa Start recording a macro in register a.
^ Move to the beginning of the line.
i#include "<Esc> Insert the string #include " at the beginning
of the line.
$ Move to the end of the line.
a"<Esc> Append the character double quotation mark (")
to the end of the line.
j Go to the next line.
q Stop recording the macro.
You can paste command records and edit them, than yank them to register
again.
You can append to a register by using uppercase letter. "aY "AY
:s/x/y -- substitute first occurrence on current line
:s/x/y/g -- substitute every occurence on the current line
:%s -- substitute on all lines
:%s/x/y/c -- ask about any substitution
:%s/x/y/p -- print out last line, that this command changes
:s+one/two+one or two+ -- use "+" delimiter in substution
Command ranges:
:1,5s/this/that/g -- substitute on 1-5 lines. Line 5 is included
:54s/this/that/ -- substitute on one line
:.write otherfile -- write only current string to file
:.,$s/yes/no -- substitute in the lines from the cursor to the end
:?^Chapter?,/^Chapter/s=grey=gray=g -- substitute in range between word
"Chapter"
There is also offsets before and after the word
:'t,'b -- you can also use marks as the range borders
:5 -- change current and next 4 lines
:[range]global/{pattern}/{command} | g:
Find a match for a pattern and execute command there.
g+//+s/foobar/barfoo/g -- replace word in all lines with // (C++ style)
Ctrl-V A -- append text after visual block
Ctrl-V $A -- append text in the end of every string in visual blck
Ctrl-V C -- change text
Ctrl-V ~ -- swap case
Ctrl-V U -- make uppercase
Ctrl-V u -- make lowercase
Ctrl-V r -- fill the whole block with one character
:read file.txt -- the file named "file.txt" will be inserted in cursor
place
gUw -- make word all uppercase
guw -- make word all lowercase
gUU -- make whole line uppercase
guu -- make all line lowercase
g~~ -- switch case in whole line
:read !ls -- read the contents of the current directory to the
cursor
Ctrl-L -- redrow the screen
Clever tricks (12):
2025-05-02 04:24:48 +00:00
Hints:
There is lowercase and uppercase marks. Uppercase marks are global, they
can help you to switch between the files. Lowercase marks are local for
one file.
2025-05-02 09:43:53 +00:00