1
1
mirror of https://github.com/namibia/awesome-cheatsheets.git synced 2024-11-08 06:15:23 +00:00

Merge pull request #273 from erfanansari/update-vim

add more shortcuts to vim.txt
This commit is contained in:
Julien Le Coupanec 2024-06-20 23:29:42 +02:00 committed by GitHub
commit 3c2016f645
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -20,13 +20,15 @@ e jump to end of words (punctuation considered words)
E jump to end of words (no punctuation) E jump to end of words (no punctuation)
b jump backward by words (punctuation considered words) b jump backward by words (punctuation considered words)
B jump backward by words (no punctuation) B jump backward by words (no punctuation)
ge jump backward to end of words ge jump backward to end of a word
gE jump backwards to the end of a word (words can contain punctuation)
0 (zero) start of line 0 (zero) start of line
^ first non-blank character of line ^ first non-blank character of line
$ end of line $ jump to the end of the line
- move line upwards, on the first non blank character g_ jump to the last non-blank character of the line
+ move line downwards, on the first non blank character - move line upwards, on the first non-blank character
<enter> move line downwards, on the first non blank character + move line downwards, on the first non-blank character
<enter> move line downwards, on the first non-blank character
gg go to first line gg go to first line
G go to last line G go to last line
ngg go to line n ngg go to line n
@ -38,10 +40,6 @@ nG go To line n
} move the cursor a paragraph forwards } move the cursor a paragraph forwards
]] move the cursor a section forwards or to the next { ]] move the cursor a section forwards or to the next {
[[ move the cursor a section backwards or the previous { [[ move the cursor a section backwards or the previous {
CTRL-f move the cursor forward by a screen of text
CTRL-b move the cursor backward by a screen of text
CTRL-u move the cursor up by half a screen
CTRL-d move the cursor down by half a screen
H move the cursor to the top of the screen. H move the cursor to the top of the screen.
M move the cursor to the middle of the screen. M move the cursor to the middle of the screen.
L move the cursor to the bottom of the screen. L move the cursor to the bottom of the screen.
@ -49,6 +47,16 @@ fx search line forward for 'x'
Fx search line backward for 'x' Fx search line backward for 'x'
tx search line forward before 'x' tx search line forward before 'x'
Tx search line backward before 'x' Tx search line backward before 'x'
CTRL-y moves screen up one line
CTRL-e moves screen down one line
CTRL-u moves cursor & screen up ½ page
CTRL-d moves cursor & screen down ½ page
CTRL-b moves screen up one page, cursor to last line
CTRL-f moves screen down one page, cursor to first line
zz shift current line to middle of screen
z. same as zz but also jumps to the first non-black character
zt shift current line to top of screen
zb shift current line to bottom of screen
############################################################################## ##############################################################################
@ -60,8 +68,15 @@ Tx search line backward before 'x'
ma make a bookmark named a at the current cursor position ma make a bookmark named a at the current cursor position
`a go to position of bookmark a `a go to position of bookmark a
'a go to the line with bookmark a 'a go to the line with bookmark a
`0 go to the position where Vim was previously exited
`" go to the position when last editing this file
`. go to the line that you last edited `. go to the line that you last edited
`` go to the position before the last jump
g, go to newer position in change list
g; go to older position in change list
# Tip: To jump to a mark you can either use a backtick (`) or an apostrophe (').
# Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.
############################################################################## ##############################################################################
# INSERT MODE # INSERT MODE
@ -70,10 +85,13 @@ ma make a bookmark named a at the current cursor position
i start insert mode at cursor i start insert mode at cursor
I insert at the beginning of the line I insert at the beginning of the line
gi return to insert mode where you inserted text the last time
gI like "I", but always start in column 1
a append after the cursor a append after the cursor
A append at the end of the line A append at the end of the line
o open (append) blank line below current line o open (append) blank line below current line
O open blank line above current line O open blank line above current line
CTRL-o Temporarily enter normal mode to issue one normal-mode command(while in insert mode)
Esc exit insert mode Esc exit insert mode
@ -84,10 +102,25 @@ Esc exit insert mode
r replace a single character (does not use insert mode) r replace a single character (does not use insert mode)
R enter Insert mode, replacing characters rather than inserting R enter Insert mode, replacing characters rather than inserting
J join line below to the current one J join line below to the current one with one space in between
gJ join line below to the current one without space in between
cc change (replace) an entire line cc change (replace) an entire line
cw change (replace) to the end of word cw change (replace) to the end of word (same as ce)
C change (replace) to the end of line 2cw change (replace) repeat cw twice
ciw change (replace) word under the cursor
caw change (replace) word under the cursor and the space after or before it
ci" change (replace) word inside ""
cit change (replace) html tag content
cat change (replace) html tag
cis change (replace) sentence under the cursor
cas change (replace) sentence under the cursor and the space after or before it
cib change (replace) inside a block with ()
cab change (replace) a block with ()
ciB change (replace) inside a block with {}
caB change (replace) a block with {}
C change (replace) to the end of line(same as c$)
cG change (replace) to the end of the file
cgg change (replace) from first line to current line
ct' change (replace) until the ' character (can change ' for any character) ct' change (replace) until the ' character (can change ' for any character)
s delete character at cursor and substitute text s delete character at cursor and substitute text
S delete line at cursor and substitute text (same as cc) S delete line at cursor and substitute text (same as cc)
@ -102,6 +135,7 @@ guiw make current word lowercase
gU$ make uppercase until end of line gU$ make uppercase until end of line
gu$ make lowercase until end of line gu$ make lowercase until end of line
>> indent line one column to right >> indent line one column to right
>i{ indent everything in the {}
<< indent line one column to left << indent line one column to left
== auto-indent current line == auto-indent current line
ddp swap current line with next ddp swap current line with next
@ -110,6 +144,7 @@ ddkP swap current line with previous
:r [name] insert the file [name] below the cursor. :r [name] insert the file [name] below the cursor.
:r !{cmd} execute {cmd} and insert its standard output below the cursor. :r !{cmd} execute {cmd} and insert its standard output below the cursor.
# Tip: Instead of b or B one can also use ( or { respectively.
############################################################################## ##############################################################################
# DELETING TEXT # DELETING TEXT
@ -118,10 +153,15 @@ ddkP swap current line with previous
x delete current character x delete current character
X delete previous character X delete previous character
dw delete the current word dw delete (cut) to the end of word (same as de)
diw delete (cut) word under the cursor
daw delete (cut) word under the cursor and the space after or before it
dap delete (cut) a paragraph
dd delete (cut) a line dd delete (cut) a line
dt' delete until the next ' character on the line (replace ' by any character) dt' delete (cut) until the next ' character on the line (replace ' by any character)
D delete from cursor to end of line dG delete (cut) to the end of the file
dgg delete (cut) from first line to current line
D delete (cut) from cursor to end of line (same as d$)
:[range]d delete [range] lines :[range]d delete [range] lines
@ -136,6 +176,10 @@ yy yank (copy) a line
y$ yank to end of line y$ yank to end of line
p put (paste) the clipboard after cursor/current line p put (paste) the clipboard after cursor/current line
P put (paste) before cursor/current line P put (paste) before cursor/current line
gp put (paste) the clipboard after cursor and leave cursor after the new text
gP put (paste) before cursor and leave cursor after the new text
"+y yank into the system clipboard register
"+p paste from the system clipboard register
:set paste avoid unexpected effects in pasting :set paste avoid unexpected effects in pasting
:registers display the contents of all registers :registers display the contents of all registers
"xyw yank word into register x "xyw yank word into register x
@ -147,6 +191,12 @@ P put (paste) before cursor/current line
"xgP just like "P", but leave the cursor just after the new text "xgP just like "P", but leave the cursor just after the new text
:[line]put x put the text from register x after [line] :[line]put x put the text from register x after [line]
# Tip: if you are using vim extension on vs code, you can enable
"vim.useSystemClipboard": true
in setting.json, this will allow to Use system clipboard for unnamed register.
############################################################################## ##############################################################################
# MACROS # MACROS
@ -157,6 +207,7 @@ qa start recording macro 'a'
q end recording macro q end recording macro
@a replay macro 'a' @a replay macro 'a'
@: replay last command @: replay last command
@@ repeat macro
############################################################################## ##############################################################################
@ -172,9 +223,11 @@ CTRL-v start visual block mode
O move to other corner of block O move to other corner of block
aw mark a word aw mark a word
ab a () block (with braces) ab a () block (with braces)
ab a {} block (with brackets) aB a {} block (with brackets)
at a block with <> tags
ib inner () block ib inner () block
ib inner {} block iB inner {} block
it inner <> block
Esc exit visual mode Esc exit visual mode
VISUAL MODE COMMANDS VISUAL MODE COMMANDS
@ -194,6 +247,7 @@ v% selects matching parenthesis
vi{ selects matching curly brace vi{ selects matching curly brace
vi" selects text between double quotes vi" selects text between double quotes
vi' selects text between single quotes vi' selects text between single quotes
gv reselect the last selected area
############################################################################## ##############################################################################
# SPELLING # SPELLING
@ -283,7 +337,6 @@ CTRL-w < increase window width
CTRL-w > decrease window width CTRL-w > decrease window width
CTRL-w = equal window CTRL-w = equal window
CTRL-w o close other windows CTRL-w o close other windows
zz Centers the window to the current line
############################################################################## ##############################################################################
@ -306,12 +359,14 @@ clast display the last error
% show matching brace, bracket, or parenthese % show matching brace, bracket, or parenthese
gf edit the file whose name is under or after the cursor gf edit the file whose name is under the cursor
gF edit the file whose name is under the cursor and jump to the line number
gd when the cursor is on a local variable or function, jump to its declaration gd when the cursor is on a local variable or function, jump to its declaration
'' return to the line where the cursor was before the latest jump '' return to the line where the cursor was before the latest jump
gi return to insert mode where you inserted text the last time
CTRL-o move to previous position you were at CTRL-o move to previous position you were at
CTRL-i move to more recent position you were at CTRL-i move to more recent position you were at
:set nu display numbers (short for :set number)
:set nonu hide numbers (short for :set nonumber)
############################################################################## ##############################################################################