# Vim 筆記
- https://www.youtube.com/playlist?list=PLBd8JGCAcUAH56L2CYF7SmWJYKwHQYUDI
- 設定 .vimrc
```clike=
set number
syntax enable
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
ab rt return
```
- 命令列模式:
- 顯示檔名,百分比:```Ctrl G```
- 移動
- 左:```h```、下:```j```、上:```k```、右:```l```
- 往後跳一單字:```w```
- 往前跳一單字:```b```
- 跳到行首:```^```
- 跳到行尾:```$```
- 跳到第 n 行:```nG```
- 跳到第一行:```gg```
- 跳到最後行:```G```
- 跳到另一個括號:```%```
- 復原
- 復原 : ```u```
- 取消復原 :```Ctrl R```
- 剪下、刪除:(把 d 改成 y 即可變成複製)
- 剪下一字元:```x```
- 剪下一行:```dd```
- 剪下兩行:```d Enter```
- 剪下 n 行:```ndd```
- 剪下一單字:```dw```
- 剪下 n 單字:```ndw```
- 剪下至行尾:```D、d$```
- 剪下至行頭:```d^```
- 選取
- 選取字元:```v```
- 選取行:```V```
- 選取長方形框框:```Ctrl v```%d```
- 多行增減字元
- 多行刪除字元:```Ctrl v 選取 + d```
- 多行增加字元:```Ctrl v 選取 + shift i + 字元 + Esc```
- 尋找
- 向後尋找字串:```/string```
- 向前尋找字串:```?string```
- 下一個:```n```
- 上一個:```N```
- 多行全行操作
- 剪下第 a-b 行,貼到 c 行:```:a,b move c```
- 複製第 a-b 行,貼到 c 行:```:a,b copy c```
- 刪除第 a-b 行:```:a,b delete```
- 全部刪除:```:
- 取代
- ```:[range]s/pattern/string/[c,e,g,i]```
- 1,7 指從第一行至第七行, % 代表整篇文章
- ```:%s/^/# /``` : 每一行行頭家註解
- ```:%s/$/# /``` : 每一行行尾家註解
- ```:1,20s/^\s\+//``` : 移除行首空格
- ```:1,20s/\s\+$//``` : 移除行尾空格
- 限定單字:```:%s/\<r\>/remote/```
- http://three-colors.blogspot.com/2008/06/vim-regular-expression.html
- 讀入其他檔案:```:r ./other.txt```
- 設定標籤:移動到該行位置後,使用 26 個小寫英文字母, ```ma、mb、mc```
- 同時編輯兩份文件:```vim file1 file2```
- 可以共用剪貼簿,使用 ```:n``` 和 ```:N``` 切換
{"metaMigratedAt":"2023-06-15T02:19:46.845Z","metaMigratedFrom":"Content","breaks":true,"title":"技術|Vim 筆記","description":"https://www.youtube.com/playlist?list=PLBd8JGCAcUAH56L2CYF7SmWJYKwHQYUDI","contributors":"[{\"id\":\"3b86af76-d692-49d0-a075-64b6f907b19e\",\"add\":2192,\"del\":336}]"}