mirror of
https://github.com/LeCoupa/awesome-cheatsheets.git
synced 2026-01-29 06:38:02 -08:00
add: various new commands
This commit is contained in:
228
tools/vim.txt
228
tools/vim.txt
@@ -2,6 +2,7 @@
|
|||||||
# VIM CHEATSHEET
|
# VIM CHEATSHEET
|
||||||
# WEBSITE: http://www.vim.org/
|
# WEBSITE: http://www.vim.org/
|
||||||
# DOCUMENTATION: https://vim.sourceforge.io/docs.php
|
# DOCUMENTATION: https://vim.sourceforge.io/docs.php
|
||||||
|
# CTRL-A = <C-a>
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
@@ -10,10 +11,12 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
h move left
|
h move a character left
|
||||||
j move down
|
j move a line down
|
||||||
k move up
|
k move a line up
|
||||||
l move right
|
l move a character right
|
||||||
|
gj move a visual line down
|
||||||
|
gk move a visual line up
|
||||||
w jump by start of words (punctuation considered words)
|
w jump by start of words (punctuation considered words)
|
||||||
W jump by words (spaces separate words)
|
W jump by words (spaces separate words)
|
||||||
e jump to end of words (punctuation considered words)
|
e jump to end of words (punctuation considered words)
|
||||||
@@ -22,33 +25,38 @@ 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 words
|
||||||
0 (zero) start of line
|
0 (zero) start of line
|
||||||
^ first non-blank character of line
|
^ first non-whitespace character of line
|
||||||
$ end of line
|
$ end of line
|
||||||
- move line upwards, on the first non blank character
|
n$ move to the end of line n lines down
|
||||||
+ move line downwards, on the first non blank character
|
- move line upwards, on the first non-whitespace character
|
||||||
<enter> move line downwards, on the first non blank character
|
+ move line downwards, on the first non-whitespace character
|
||||||
|
<enter> move line downwards, on the first non-whitespace 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
|
||||||
nG go To line n
|
nG go to line n
|
||||||
:n go To line n
|
:n go to line n
|
||||||
) move the cursor forward to the next sentence.
|
:-n go n lines up, like nk
|
||||||
( move the cursor backward by a sentence.
|
:+n go n lines down, like nj
|
||||||
|
) move the cursor forward to the next sentence
|
||||||
|
( move the cursor backward by a sentence
|
||||||
{ move the cursor a paragraph backwards
|
{ move the cursor a paragraph backwards
|
||||||
} 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
|
<C-f> move the cursor forward by a screen of text
|
||||||
CTRL-b move the cursor backward by a screen of text
|
<C-b> move the cursor backward by a screen of text
|
||||||
CTRL-u move the cursor up by half a screen
|
<C-u> move the cursor up by half a screen
|
||||||
CTRL-d move the cursor down by half a screen
|
<C-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
|
||||||
fx search line forward for 'x'
|
fx find and move on next occurance of x on current line
|
||||||
Fx search line backward for 'x'
|
Fx find and move on previous occurance of x on current line
|
||||||
tx search line forward before 'x'
|
tx find and move to next occurance of x on current line
|
||||||
Tx search line backward before 'x'
|
Tx find and move to previous occurance of x on current line
|
||||||
|
; rerun last f/F/t/T movement
|
||||||
|
, rerun last f/F/t/T movement but in the opposite way
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -74,7 +82,7 @@ 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
|
||||||
Esc exit insert mode
|
<Esc> exit insert mode
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -84,16 +92,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 and add space
|
||||||
cc change (replace) an entire line
|
gJ join line below to the current one without adding space
|
||||||
cw change (replace) to the end of word
|
cc change an entire line
|
||||||
C change (replace) to the end of line
|
cw change to the end of word
|
||||||
ct' change (replace) until the ' character (can change ' for any character)
|
ciw change whole word regardless of where you are in it
|
||||||
|
cip change in paragaph (between new lines)
|
||||||
|
cap change around paragaph and the paragraph itself
|
||||||
|
ci( change in pair of (, works with { [ " ' too
|
||||||
|
ca( change in and around pair of (, works with { [ " ' too
|
||||||
|
C change to the end of line
|
||||||
|
ct' change until the ' character (can change ' for any character)
|
||||||
|
ci" change everything in the next " on the line
|
||||||
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)
|
||||||
xp transpose two letters (delete and paste, technically)
|
xp transpose two letters (delete and paste, technically)
|
||||||
u undo
|
u undo
|
||||||
CTRL-r redo
|
<C-r> redo
|
||||||
|
<C-a> increment number under cursor
|
||||||
|
<C-x> decrement number under cursor
|
||||||
. repeat last command
|
. repeat last command
|
||||||
~ switch case
|
~ switch case
|
||||||
g~iw switch case of current word
|
g~iw switch case of current word
|
||||||
@@ -103,12 +120,15 @@ 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
|
||||||
<< indent line one column to left
|
<< indent line one column to left
|
||||||
|
<ip indent in paragraph to the left
|
||||||
|
>ip outdent in paragraph to the left
|
||||||
|
<ap indent around paragraph to the left and the paragraph itself
|
||||||
|
>ap outdent around paragraph to the left and the paragraph itself
|
||||||
== auto-indent current line
|
== auto-indent current line
|
||||||
ddp swap current line with next
|
ddp swap current line with next
|
||||||
ddkp swap current line with previous
|
ddkp swap current line with previous
|
||||||
:%retab fix spaces / tabs issues in whole file
|
g?? rot13 encode current line, useful for spoilering text
|
||||||
:r [name] insert the file [name] below the cursor.
|
<C-r>=3+3 in insert mode, will evaluate 3+3 and paste it, works with simple expressions
|
||||||
:r !{cmd} execute {cmd} and insert its standard output below the cursor.
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -120,10 +140,14 @@ x delete current character
|
|||||||
X delete previous character
|
X delete previous character
|
||||||
dw delete the current word
|
dw delete the current word
|
||||||
dd delete (cut) a line
|
dd delete (cut) a line
|
||||||
|
diw delete whole word regardless of where you are in it
|
||||||
|
dip delte in paragraph
|
||||||
|
dap delte around paragraph and the paragraph itself
|
||||||
dt' delete until the next ' character on the line (replace ' by any character)
|
dt' delete until the next ' character on the line (replace ' by any character)
|
||||||
D delete from cursor to end of line
|
D delete from cursor to end of line
|
||||||
:[range]d delete [range] lines
|
:[range]d delete [range] lines
|
||||||
|
di( delete in pair of (, works with { [ " ' too
|
||||||
|
da( delete in and around pair of (, works with { [ " ' too
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# COPYING AND MOVING TEXT
|
# COPYING AND MOVING TEXT
|
||||||
@@ -132,8 +156,13 @@ D delete from cursor to end of line
|
|||||||
|
|
||||||
yw yank word
|
yw yank word
|
||||||
yy yank (copy) a line
|
yy yank (copy) a line
|
||||||
2yy yank 2 lines
|
nyy yank n lines
|
||||||
y$ yank to end of line
|
y$ yank to end of line
|
||||||
|
yiw yank whole word regardless of where you are in it
|
||||||
|
yip yank in paragaph (between new lines)
|
||||||
|
yap yank around paragaph and the paragraph itself
|
||||||
|
yi( yank in pair of (, works with { [ " ' too
|
||||||
|
ya( yank in and around pair of (, works with { [ " ' too
|
||||||
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
|
||||||
:set paste avoid unexpected effects in pasting
|
:set paste avoid unexpected effects in pasting
|
||||||
@@ -153,11 +182,13 @@ P put (paste) before cursor/current line
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
qa start recording macro 'a'
|
qa start recording macro to register a
|
||||||
q end recording macro
|
q end recording macro
|
||||||
@a replay macro 'a'
|
@a replay macro 'a'
|
||||||
|
@@ replay last macro
|
||||||
@: replay last command
|
@: replay last command
|
||||||
|
"ap paste the conents of the a register/macro
|
||||||
|
"ayy yank the current line into the a register/macro
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# VISUAL MODE
|
# VISUAL MODE
|
||||||
@@ -168,32 +199,23 @@ v start visual mode, mark lines, then do command (such as y-ya
|
|||||||
V start linewise visual mode
|
V start linewise visual mode
|
||||||
o move to other end of marked area
|
o move to other end of marked area
|
||||||
U upper case of marked area
|
U upper case of marked area
|
||||||
CTRL-v start visual block mode
|
<C-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)
|
||||||
ib inner () block
|
ib inner () block
|
||||||
ib inner {} block
|
ib inner {} block
|
||||||
Esc exit visual mode
|
vap visually select paragraph and around it
|
||||||
|
vip visually select in paragraph
|
||||||
VISUAL MODE COMMANDS
|
v% matching parenthesis
|
||||||
--------------------
|
|
||||||
|
|
||||||
> shift right
|
|
||||||
< shift left
|
|
||||||
c change (replace) marked text
|
|
||||||
y yank (copy) marked text
|
|
||||||
d delete marked text
|
|
||||||
~ switch case
|
|
||||||
|
|
||||||
VISUAL MODE SHORTCUTS
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
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
|
||||||
|
va" selects text around double quotes
|
||||||
|
va' selects text around single quotes
|
||||||
|
g<C-a> increment selected text but increment with one more each time
|
||||||
|
g<C-x> decrement selected text but decrement with one more each time
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# SPELLING
|
# SPELLING
|
||||||
@@ -212,17 +234,17 @@ z= suggest word
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
:q quit Vim. This fails when changes have been made.
|
:q quit Vim, fails when changes have been made
|
||||||
:q! quit without writing.
|
:q! quit without writing
|
||||||
:cq quit always, without writing.
|
:cq quit always, without writing
|
||||||
:w save without exiting.
|
:w save without exiting
|
||||||
:wq write the current file and exit.
|
:wq write the current file and exit
|
||||||
:wq! write the current file and exit always.
|
:wq! write the current file and exit always
|
||||||
:wq {file} write to {file}. Exit if not editing the last
|
:wq {file} write to {file} Exit if not editing the last
|
||||||
:wq! {file} write to {file} and exit always.
|
:wq! {file} write to {file} and exit always
|
||||||
:[range]wq[!] same as above, but only write the lines in [range].
|
:[range]wq[!] same as above, but only write the lines in [range]
|
||||||
ZZ write current file, if modified, and exit.
|
ZZ write current file, if modified, and exit
|
||||||
ZQ quit current file and exit (same as ":q!").
|
ZQ quit current file and exit (same as ":q!")
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -236,8 +258,8 @@ n repeat search in same direction
|
|||||||
N repeat search in opposite direction
|
N repeat search in opposite direction
|
||||||
* search forward, word under cursor
|
* search forward, word under cursor
|
||||||
# search backward, word under cursor
|
# search backward, word under cursor
|
||||||
set ic ignore case: turn on
|
set ignorecase ignore case: turn on
|
||||||
set noic ignore case: turn off
|
set noignorecase ignore case: turn off
|
||||||
:%s/old/new/g replace all old with new throughout file
|
:%s/old/new/g replace all old with new throughout file
|
||||||
:%s/old/new/gc replace all old with new throughout file with confirmation
|
:%s/old/new/gc replace all old with new throughout file with confirmation
|
||||||
:argdo %s/old/new/gc | wq open multiple files and run this command to replace old
|
:argdo %s/old/new/gc | wq open multiple files and run this command to replace old
|
||||||
@@ -245,7 +267,7 @@ set noic ignore case: turn off
|
|||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# MULTIPLE FILES
|
# MULTIPLE FILES AND BUFFERS
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
@@ -266,24 +288,24 @@ set noic ignore case: turn off
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
:sp f split open f
|
:sp file horizontal split open file, if you don't specify it opens the current one
|
||||||
:vsp f vsplit open f
|
:vsp file vertical split open file, if you don't specify it opens the current one
|
||||||
CTRL-w s split windows
|
<C-ws> split windows
|
||||||
CTRL-w w switch between windows
|
<C-ww> switch between windows
|
||||||
CTRL-w q quit a window
|
<C-wq> quit a window
|
||||||
CTRL-w v split windows vertically
|
<C-wv> split windows vertically
|
||||||
CTRL-w x swap windows
|
<C-wx> swap windows
|
||||||
CTRL-w h left window
|
<C-wh> left window
|
||||||
CTRL-w j down window
|
<C-wj> down window
|
||||||
CTRL-w k up window
|
<C-wk> up window
|
||||||
CTRL-w l right window
|
<C-wl> right window
|
||||||
CTRL-w + increase window height
|
<C-w+> increase window height
|
||||||
CTRL-w - decrease window height
|
<C-w-> decrease window height
|
||||||
CTRL-w < increase window width
|
<C-w<> increase window width
|
||||||
CTRL-w > decrease window width
|
<C-w>> decrease window width
|
||||||
CTRL-w = equal window
|
<C-w=> equal window
|
||||||
CTRL-w o close other windows
|
<C-wo> close other windows
|
||||||
zz Centers the window to the current line
|
zz visually puts current line at the center of the screen
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -307,11 +329,29 @@ 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 or after the cursor
|
||||||
gd when the cursor is on a local variable or function, jump to its declaration
|
gd if 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
|
gi return to insert mode where you inserted text the last time
|
||||||
CTRL-o move to previous position you were at
|
<C-o> move to previous position you were at
|
||||||
CTRL-i move to more recent position you were at
|
<C-i> move to more recent position you were at
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# COMMANDS
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
q: list command history
|
||||||
|
:set optionName set the optionName option
|
||||||
|
:h[elp] command open offline help menu for command
|
||||||
|
:put paste
|
||||||
|
:put = 3+3 calculate 3+3 and put it on a new line, works with basic expressions
|
||||||
|
:%retab fix spaces / tabs issues in whole file
|
||||||
|
:r [name] insert the file [name] below the cursor
|
||||||
|
:r !{cmd} execute {cmd} and insert its standard output below the cursor
|
||||||
|
:%le remove all leading whitespace
|
||||||
|
:%y yank whole file
|
||||||
|
:[range]norm Ihi run a sequence of commands on a range of lines
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -416,8 +456,8 @@ P go to root
|
|||||||
p go to parent
|
p go to parent
|
||||||
K go to first child
|
K go to first child
|
||||||
J go to last child
|
J go to last child
|
||||||
CTRL-j go to next sibling
|
<C-j> go to next sibling
|
||||||
CTRL-k go to prev sibling
|
<C-k> go to prev sibling
|
||||||
|
|
||||||
FILESYSTEM
|
FILESYSTEM
|
||||||
----------
|
----------
|
||||||
@@ -451,7 +491,7 @@ A zoom (maximize-minimize) the NERDTree window
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
CTRL-P generate PHP DOC
|
<C-P> generate PHP DOC
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -475,8 +515,8 @@ CTRL-P generate PHP DOC
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
CTRL-e execute sparkup (zen coding expansion)
|
<C-e> execute sparkup (zen coding expansion)
|
||||||
CTRL-n jump to the next empty tag / attribute
|
<C-n> jump to the next empty tag / attribute
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|||||||
Reference in New Issue
Block a user