# Vim + Rider  ## 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`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up