Update vim cheatsheet
This commit is contained in:
parent
d4b9c9977c
commit
0c8749580d
|
@ -26,6 +26,10 @@
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& td:first-child {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
& td:first-child > code {
|
& td:first-child > code {
|
||||||
font-size: 0.86em;
|
font-size: 0.86em;
|
||||||
color: #35a;
|
color: #35a;
|
||||||
|
|
359
vim.md
359
vim.md
|
@ -1,8 +1,240 @@
|
||||||
---
|
---
|
||||||
title: vim
|
title: Vim
|
||||||
category: Vim
|
category: Vim
|
||||||
|
layout: 2017/sheet
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Getting started
|
||||||
|
---------------
|
||||||
|
{: .-three-column}
|
||||||
|
|
||||||
|
### Navigating
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `h` `j` `k` `l` | Arrow keys |
|
||||||
|
| `^u` _/_ `^d` | Page up/page down |
|
||||||
|
| --- | --- |
|
||||||
|
| `b` _/_ `w` | Previous/next word |
|
||||||
|
| `e` _/_ `ge` | Previous/next end of word |
|
||||||
|
| --- | --- |
|
||||||
|
| `0` _(zero)_ | Start of line |
|
||||||
|
| `^` | Start of line _(after whitespace)_ |
|
||||||
|
| --- | --- |
|
||||||
|
| `$` | End of line |
|
||||||
|
| `gg` | First line |
|
||||||
|
| `G` | Last line |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Entering insert mode
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `a` | Append |
|
||||||
|
| `i` | Insert |
|
||||||
|
| `o` | Next line |
|
||||||
|
| `O` | Previous line |
|
||||||
|
| --- | --- |
|
||||||
|
| `s` | Delete char and insert |
|
||||||
|
| `S` | Delete line and insert |
|
||||||
|
| `C` | Delete until end of line and insert |
|
||||||
|
| --- | --- |
|
||||||
|
| `R` | Replace |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Exiting insert mode
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `Esc` _/_ `^[` | Exit insert mode |
|
||||||
|
| `^c` | Exit insert mode, and abort current command |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Clipboard
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `x` | Delete character |
|
||||||
|
| --- | --- |
|
||||||
|
| `dd` | Delete line _(Cut)_ |
|
||||||
|
| `yy` | Yank line _(Copy)_ |
|
||||||
|
| --- | --- |
|
||||||
|
| `p` | Paste |
|
||||||
|
| `P` | Paste before |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Visual mode
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `v` | Enter visual mode |
|
||||||
|
| `V` | Enter visual line mode |
|
||||||
|
| `^v` | Enter visual block mode |
|
||||||
|
| --- | --- |
|
||||||
|
| `d` _/_ `x` | Delete selection |
|
||||||
|
| `s` | Replace selection |
|
||||||
|
| `y` | Yank selection _(Copy)_ |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
Text objects
|
||||||
|
------------
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `vip` | Select paragraph |
|
||||||
|
| `vipipipip` | Select more |
|
||||||
|
| --- | --- |
|
||||||
|
| `yip` | Yank inner paragraph |
|
||||||
|
| `yap` | Yank paragraph (including newline) |
|
||||||
|
| --- | --- |
|
||||||
|
| `dip` | Delete inner paragraph |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Text objects
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `ap` | a paragraph |
|
||||||
|
| `ip` | inner paragraph |
|
||||||
|
| --- | --- |
|
||||||
|
| `ap` `ip` | Paragraph |
|
||||||
|
| `aw` `iw` | Word |
|
||||||
|
| `as` `is` | Sentence |
|
||||||
|
| --- | --- |
|
||||||
|
| `a[` `a(` `a{` `a<` | A [], (), or {} block |
|
||||||
|
| `a'` `a"` <code>a`</code> | A quoted string |
|
||||||
|
| --- | --- |
|
||||||
|
| `ab` | A block [( |
|
||||||
|
| `aB` | A block in [{ |
|
||||||
|
| `at` | A XML tag block |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Navigation
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `[(` `[{` `[<` | previous `(` or `{` or `<` |
|
||||||
|
| `])` | next |
|
||||||
|
| --- | --- |
|
||||||
|
| `[m` | previous method start |
|
||||||
|
| `[M` | previous method end |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
|
||||||
|
Misc
|
||||||
|
----
|
||||||
|
|
||||||
|
### Folds
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `zo` _/_ `zO` | Open |
|
||||||
|
| `zc` _/_ `zC` | Close |
|
||||||
|
| `za` _/_ `zA` | Toggle |
|
||||||
|
| --- | --- |
|
||||||
|
| `zv` | Open folds for this line |
|
||||||
|
| --- | --- |
|
||||||
|
| `zM` | Close all |
|
||||||
|
| `zR` | Open all |
|
||||||
|
| --- | --- |
|
||||||
|
| `zm` | Fold more _(foldlevel += 1)_ |
|
||||||
|
| `zr` | Fold less _(foldlevel -= 1)_ |
|
||||||
|
| --- | --- |
|
||||||
|
| `zx` | Update folds |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
Uppercase ones are recursive (eg, `zO` is open recursively).
|
||||||
|
|
||||||
|
### Jumping
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `^O` | Go back to previous location |
|
||||||
|
| `^I` | Go forward |
|
||||||
|
| --- | --- |
|
||||||
|
| `gf` | go to file in cursor |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Counters
|
||||||
|
|
||||||
|
| `^A` | increment number |
|
||||||
|
| `^X` | decrement |
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
| `z{height}<Cr>` | Resize pane to `{height}` lines tall |
|
||||||
|
|
||||||
|
### Tags
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `:tag Classname` | Jump to first definition of Classname |
|
||||||
|
| --- | --- |
|
||||||
|
| `^]` | Jump to definition |
|
||||||
|
| `g]` | See all definitions |
|
||||||
|
| `^t` | Go back to last tag |
|
||||||
|
| `^o ^i` | Back/forward |
|
||||||
|
| --- | --- |
|
||||||
|
| `:tselect Classname` | Find definitions of Classname |
|
||||||
|
| `:tjump Classname` | Find definitions of Classname (auto-select 1st) |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
### Case
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `~` | toggle case (Case => cASE) |
|
||||||
|
| `gU` | uppercase |
|
||||||
|
| `gu` | lowercase |
|
||||||
|
| --- | --- |
|
||||||
|
| `gUU` | uppercase current line (also `gUgU`) |
|
||||||
|
| `guu` | lowercase current line (also `gugu`) |
|
||||||
|
{: .-shortcuts}
|
||||||
|
|
||||||
|
Do these in visual mode.
|
||||||
|
|
||||||
|
### Marks
|
||||||
|
|
||||||
|
| <code>`^</code> | Last position of cursor in insert mode |
|
||||||
|
| <code>`.</code> | Last change |
|
||||||
|
| <code>``</code> | Last jump |
|
||||||
|
|
||||||
|
### Misc
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `.` | repeat last command |
|
||||||
|
| `]p` | paste under the current indentation level |
|
||||||
|
| --- | --- |
|
||||||
|
| `zz` | Center this line |
|
||||||
|
|
||||||
|
### Command line
|
||||||
|
|
||||||
|
| Shortcut | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| `<C-r><C-w>` | insert current word into the command line |
|
||||||
|
| `<C-r>"` | paste from " register |
|
||||||
|
|
||||||
|
### Text alignment
|
||||||
|
|
||||||
|
:center [width]
|
||||||
|
:right [width]
|
||||||
|
:left
|
||||||
|
|
||||||
|
See `:help formatting`
|
||||||
|
|
||||||
|
### Calculator
|
||||||
|
|
||||||
|
<C-r>=128/2
|
||||||
|
|
||||||
|
Do this in insert mode.
|
||||||
|
|
||||||
|
Also see
|
||||||
|
--------
|
||||||
|
{: .-one-column}
|
||||||
|
|
||||||
* [Digraphs](vim-digraphs.html)
|
* [Digraphs](vim-digraphs.html)
|
||||||
* [Help text](vim-help.html)
|
* [Help text](vim-help.html)
|
||||||
* [Vimscript](vimscript.html)
|
* [Vimscript](vimscript.html)
|
||||||
|
@ -10,128 +242,3 @@ category: Vim
|
||||||
* [Vim-easyalign](vim-easyalign.html)
|
* [Vim-easyalign](vim-easyalign.html)
|
||||||
* [Vim-rails](vim-rails.html)
|
* [Vim-rails](vim-rails.html)
|
||||||
|
|
||||||
Command line
|
|
||||||
------------
|
|
||||||
|
|
||||||
<C-r><C-w> # insert current word into the command line
|
|
||||||
<C-r>" # paste from " register
|
|
||||||
|
|
||||||
Text objects
|
|
||||||
------------
|
|
||||||
|
|
||||||
vip # Select paragraph
|
|
||||||
vipipipip # Select more
|
|
||||||
|
|
||||||
ap # a paragraph
|
|
||||||
ip # inner paragraph
|
|
||||||
|
|
||||||
ap, ip # Paragraph
|
|
||||||
aw, iw # Word
|
|
||||||
as, is # Sentence
|
|
||||||
|
|
||||||
ab # A block [(
|
|
||||||
aB # A block in [{
|
|
||||||
at # A XML tag block
|
|
||||||
a[ ( { < # A [], (), or {} block
|
|
||||||
a' " ` # A quoted string
|
|
||||||
|
|
||||||
[( [{ [< # previous ( or { or <
|
|
||||||
]) # next
|
|
||||||
|
|
||||||
[m # previous method start
|
|
||||||
[M # previous method end
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
yip # Yank inner paragraph
|
|
||||||
yap # Yank paragraph (including newline)
|
|
||||||
|
|
||||||
Folds
|
|
||||||
-----
|
|
||||||
|
|
||||||
zo # Open
|
|
||||||
zO # Open, recursive
|
|
||||||
zc # Close
|
|
||||||
zC # Close, recursive
|
|
||||||
za # Toggle
|
|
||||||
zA # Toggle, recursive
|
|
||||||
|
|
||||||
zv # Open folds for this line
|
|
||||||
|
|
||||||
zM # Close all
|
|
||||||
zR # Open all
|
|
||||||
|
|
||||||
zm # Fold more (foldlevel += 1)
|
|
||||||
zr # Fold less (foldlevel -= 1)
|
|
||||||
|
|
||||||
zx # Update
|
|
||||||
|
|
||||||
Jumping
|
|
||||||
-------
|
|
||||||
|
|
||||||
^O # Go back to previous location
|
|
||||||
^I # Go forward
|
|
||||||
|
|
||||||
gf # go to file in cursor
|
|
||||||
|
|
||||||
Misc
|
|
||||||
----
|
|
||||||
|
|
||||||
. # repeat last command
|
|
||||||
]p # paste under the current indentation level
|
|
||||||
|
|
||||||
zz # Center this line
|
|
||||||
|
|
||||||
Counters
|
|
||||||
--------
|
|
||||||
|
|
||||||
^A # increment number
|
|
||||||
^X # decrement
|
|
||||||
|
|
||||||
Windows
|
|
||||||
-------
|
|
||||||
|
|
||||||
z{height}<Cr> # Resize pane to {height} lines tall
|
|
||||||
|
|
||||||
Tags
|
|
||||||
----
|
|
||||||
|
|
||||||
:tag Classname # Jump to first definition of Classname
|
|
||||||
|
|
||||||
^] # Jump to definition
|
|
||||||
g] # See all definitions
|
|
||||||
C-t # Go back to last tag
|
|
||||||
^O ^I # Back/forward
|
|
||||||
|
|
||||||
:tselect Classname # Find definitions of Classname
|
|
||||||
:tjump Classname # Find definitions of Classname (auto-select 1st)
|
|
||||||
|
|
||||||
Case
|
|
||||||
----
|
|
||||||
|
|
||||||
~ # toggle case (Case => cASE)
|
|
||||||
gU # uppercase
|
|
||||||
gu # lowercase
|
|
||||||
|
|
||||||
gUU # uppercase current line (also gUgU)
|
|
||||||
guu # lowercase current line (also gugu)
|
|
||||||
|
|
||||||
Marks
|
|
||||||
-----
|
|
||||||
|
|
||||||
`^ # Last position of cursor in insert mode
|
|
||||||
`. # Last change
|
|
||||||
`` # Last jump
|
|
||||||
|
|
||||||
Text alignment
|
|
||||||
--------------
|
|
||||||
|
|
||||||
See `:help formatting`
|
|
||||||
|
|
||||||
:center [width]
|
|
||||||
:right [width]
|
|
||||||
:left
|
|
||||||
|
|
||||||
### Calculator
|
|
||||||
|
|
||||||
(Insert mode) <C-r>=128/2
|
|
||||||
|
|
Loading…
Reference in New Issue