---
# System prepended metadata

title: 技術｜Vim 筆記
tags: [技術]

---

# 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``` 切換