---
# System prepended metadata

title: Vim + Rider
tags: [Development Tool]

---

# Vim + Rider

![](https://i.imgur.com/N55DRjC.png)


## Mode
Vim 有 3 種模式
Normal Mode：預設模式，按下 ESC 會回到這邊
Insert Mode：編輯模式，此時可以進行程式碼編輯
Visual Mode：可視模式，針對選取的內容進行操作

## 移動游標

### 基本移動搭配行號

| 指令   | 功能                                       |
| ------ | ------------------------------------------ |
| j      | 往 ***下*** 移動                           |
| {num}j | 往 ***下*** 移動到{num}行 (相對行數)       |
| k      | 往 ***上*** 移動                           |
| {num}k | 往 ***上*** 移動{num}行 (相對行數)         |
| h      | 往 ***左*** 移動                           |
| l      | 往 ***右*** 移動                           |
| -      | 往 ***下*** 移動                           |
| {num}- | 往 ***下*** 移動到{num}行的行頭 (相對行數) |
| +      | 往 ***上*** 移動                           |
| {num}+ | 往 ***上*** 移動到{num}行的行頭 (相對行數) |

### 以 word 為單位

| 指令 | 功能                                                                                 |
| ---- | ------------------------------------------------------------------------------------ |
| w    | 跳到 ***下一個*** Word 的 ***首*** 字元，符號也算字元，空白不算字元                  |
| W    | 以連續的文字為單位，跳到 ***下一個*** 連續文字的 ***首*** 字元，切割點只有換行及空白 |
| b    | 跳到 ***上一個*** Word 的 ***首*** 字元，符號也算字元，空白不算字元                  |
| B    | 以連續的文字為單位，跳到 ***上一個*** 連續文字的 ***首*** 字元，切割點只有換行及空白 |
| e    | 跳到 ***下一個*** Word 的 ***尾*** 字元，符號也算字元，空白不算字元                  |
| E    | 以連續的文字為單位，跳到 ***下一個*** 連續文字的 ***尾*** 字元，切割點只有換行及空白 |

### 整行

| 指令 | 功能                   |
| ---- | ---------------------- |
| ^    | 跳到整行文字的開頭字元 |
| $    | 跳到整行文字的結尾字元 |
| 0    | 跳到整行的開頭字元     |

### 段落

| 指令 | 功能                              |
| ---- | --------------------------------- |
| {    | 跳到前一行空白行 (不能有任何空白) |
| }    | 跳到下一行空白行 (不能有任何空白) |

### 段落

| 指令 | 功能                              |
| ---- | --------------------------------- |
| {    | 跳到前一行空白行 (不能有任何空白) |
| }    | 跳到下一行空白行 (不能有任何空白) |

### 成對符號

| 指令 | 功能                                                             |
| ---- | ---------------------------------------------------------------- |
| [{   | 跳到包住當前字元的起始 ***大括號***                              |
| ]}   | 跳到包住當前字元的結尾 ***大括號***                              |
| [(   | 跳到包住當前字元的起始 ***小括號***                              |
| ])   | 跳到包住當前字元的結尾 ***小括號***                              |
| %    | 跳到同一行的一個結束成對符號，但如果已經在成對符號上，則會來會跳 |

---

## 搜尋

### 單行內 char 為單位

| 指令         | 功能                                                |
| ------------ | --------------------------------------------------- |
| f{char}      | 跳到同一行的 ***下*** 1 個 {char} 的字元            |
| {num}f{char} | 跳到同一行的 ***下*** {num} 個 {char} 的字元        |
| F{char}      | 跳到同一行的 ***前*** 1 個 {char} 的字元            |
| {num}F{char} | 跳到同一行的 ***前*** {num} 個 {char} 的字元        |
| t{char}      | 跳到同一行的 ***下*** 1 個 {char} 的後 1 個字元     |
| {num}t{char} | 跳到同一行的 ***下*** {num} 個 {char} 的後 1 個字元 |
| T{char}      | 跳到同一行的 ***前*** 1 個 {char} 的後 1 個字元     |
| {num}T{char} | 跳到同一行的 ***前*** {num} 個 {char} 的後 1 個字元 |

:::info
; 順向重複查詢，t 的話會出現在該字元前面
, 逆向重複查詢，t 的話會出現在該字元後面
:::

### 跨行搜尋

| 指令    | 功能                            |
| ------- | ------------------------------- |
| /{word} | 往目前游標 ***後*** 查詢{words} |
| ?{word} | 往目前游標 ***前*** 查詢{words} |

:::info
n 順向重複查詢
N 逆向重複查詢
:::

| 指令 | 意思    | 功能                                   |
| ---- | ------- | -------------------------------------- |
| a    | Append  | 從目前字元後進入 Insert 模式           |
| A    | Append  | 從目前行最後一個字元後進入 Insert 模式 |
| i    | Insert  | 從目前字元前進入 Insert 模式           |
| I    | Insert  | 從目前行第一個字元後進入 Insert 模式   |
| o    | Open    | 往下一行插入一行空白行                 |
| O    | Open    | 往上一行插入一行空白行                 |
| r    | Replace | 將目前字元替換成接下來打的字元         |
| J    | Join   | 將下一行合併到當前行尾端               |





shift 連選


f{search word} 跳到下一個指定文字
    ;
    ,
t

"w" forward to next start
"b" back to prev start
"e" forward to next end
大寫 WBE 是以空白或換行為分界

[{ 跳到當前大開頭括號
]} 跳到當前大開頭結尾


[( 跳到當前小開頭結尾
]) 跳到當前小開頭結尾



% 成對符號來回 (需停在上面)
*
"#"
^
$
( 段落的開頭
)

:::success
:set rnu 打開相對行數
:::

Normnal Mode

/ 往下搜尋
? 往上搜尋



.
y
c
C
s
S

d

x
X

rk
p

. 是怎麼運作的?



###### tags: `Development Tool`