# Vim
###### tags: `note`
## History
- vi
- vim vs. neovim
## Games
- PacVim
- vim adventure
## vim-plugin list
- [plugin list](https://github.com/rockerBOO/awesome-neovim#plugin-manager)
## vim-plugin manager
- packer
- [vim-plug](https://github.com/junegunn/vim-plug)
## LSP
> Language Server Protocol
- coc.nvim
- lsconfig
## leader key
## Tips
```
By remembering the first letter of a function name, you can do it actually.
d - delete
p - paste
v - visual
J - join
g - global
c - change
r - replace
i - insert
g/re/p - globally, regular expressions, print
Using object motions
aw - a word
iw - in word
a( - a ( and content and ending till )
i( - text inside ( and )
a{ - a block
ap - a paragraph
at - a tag (html tag)
You can combine operations with these objects.
daw - delete a word
yaw - Yank a word
di" - delete inside double quotes (")
ya{ - yank a block
dap - delete a paragraph
```
```
'. - Jump to last modification line.
`. - Jump to exact spot in last modification line
; - Repeat last movement command
ctrl o - Retrace your movements in file in backwards.
ctrl i - Retrace your movements in file in forwards.
```
number manipulation
```
ctrl a - Increase a number
ctrl x - Decreaes a number
```
surrondVim
```
ysiw) - add parentheses `()` around word
ysiw( - add parentheses around word with extra space
ds( - delete parentheses `()` around current word
ds[ - delete parentheses `[]` around current word
```
in Visual mod:
```
u - make selected charater lower case
U - make selected charater upper case
```
## reference
- https://amikai.github.io/2020/09/03/go_neovim_env/
- https://ithelp.ithome.com.tw/users/20130473/ironman/4804?page=2
- [a very good slide](https://hackmd.io/@aben20807/ryg-CBkmm?type=slide#/)
- [a good note in hackmd](https://hackmd.io/@naclyen/ByQa2-buD)