Skip to main content

[Note] VIM 程式編輯器

keywords: vim, editor, cmd#

👍即將失傳的古老技藝 Vim @ 高見龍

TL;DR#

A      # 從行末開始編輯
d0     # 從此位置開始刪除到行首d$     # 從此位置開始刪除到行末dd     # 刪除此行
0      # 跳到行首$      # 跳到行末
u           # undo,回到上一步[ctrl + r]  # redo,回到下一步
W      # word,往後跳一個單字B      # backward,往前跳一個單字
gg     # 跳到文件第一行G      # 跳到文件最後一行

使用 VIM 開啟檔案#

vim            # 進入 VIM 編輯器vim <filename> # 開啟某個檔案
[ctrl + Z]     # 讓 VIM 進入背景fg             # 讓 VIM 回到主畫面
# 其他:help <command>

文字編輯#

i       # 進入 INSERT 模式I       # 進入 INSERT 模式,並跳到行首
a      # append,在當前游標後一個字進入 INSERT 模式A       # 進入 INSERT 模式,並跳到行尾
o      # 新增下一行並進入 INSERTO      # 新增上一行並進入  INSERT[esc]  # 離開編輯模式(或者 Ctrl + [ )
# VIM 刪除的內容會被放到暫存器中x       # 刪除當前游標的文字或所選文字c       # 刪除當前游標的文字或所選文字,並同時進入 INSERTC      # 刪除游標位置到行尾的所有內容,並同時進入 INSERT
d       # 刪除所選文字D       # 刪除游標位置到行尾的所有內容dd     # 刪除一整行2dd     # 刪除兩行dG     # 刪除游標位置開始當文末的所有內容dgg     # 刪除游標位置開始當文首的所有內容
r       # replace,取代游標的文字R       # 進入取代模式(REPLACE)
=       # 排版,自動根據程式語言進行縮排(需先把要縮排的程式碼進行選取)>>      # 增加縮排,當有選取內容是只需要按一下 ><<     # 減少縮排,當有選取內容是只需要按一下 <:set shiftwidth=2      # 變更縮排長

存檔和離開#

# 存檔:w <filename>   # 存檔。僅第一次要輸入檔名,之後使用 :w 就會存檔:q    # 離開:q!    # 離開不存檔:wq    # 存檔並離開

移動游標#

# 移動游標hjkl  # LBTRgj    # 跳到該句子的下一行gk    # 跳到該句子的上一行
w      # word,一次跳動一個單字,但包含標點符號在內W     # word,一次跳動一個單字
b      # backward,往前跳一個單字,但包含標點符號在內B      # backward,往前跳一個單字
}      # 跳到下一個段落{      # 跳到前一個段落
G      # 跳到檔案的最末行gg    # 跳到檔案的第一行8G    # 跳到文件第 8 行
0      # 跳到行首$     # 跳到行末

搜尋文字#

/         # 搜尋n         # next,跳到下一個匹配到的結果N        # 跳到上一個搜尋結果
*          # 搜尋游標位置的單字
f <字母>    # 跳到該行游標後第一個匹配到的字母F <字母>    # 跳到該行游標前第一個匹配到的字母
:set hlsearch   # 幫搜尋結果高亮:set nohlsearch # 取消搜尋高亮

移動畫面#

zz        # 讓游標的位置在畫面置中zb        # 讓游標的位置放在畫面下方zt        # 讓游標的位置放在畫面上方

選取、複製、貼上#

進入 visual 模式後,搭配游標的移動,即可以選取文字

v         # 進入 visual 模式,以 character 為單位選取V         # 進入 visual 模式,並以「行」為單位選取

# 複製y          # yank,複製到暫存區(要先選取文字)
yy         # 複製該行內容(不用選取)2yy         # 一次複製兩行
y$         # 從現在的位置開始複製到行末yG         # 從現在的位置開始複製到文末
“ay         # 將所選文字複製到暫存器 a"ap         # 將暫存器 a 的內容貼上:reg       # 檢視暫存器內的所有內容
# 貼上p          # paste,貼上(不可以進入編輯模式)5p         # 重複貼上 5 次
# 上一步、下一步u           # undo,回到上一步[ctrl + r] # redo,回到下一步
:set clipboard=unnamed    # 讓 VIM 內的暫存器和電腦的剪貼簿通用

👍 Vim Cheat Sheet 👍 Learn Vim Progressively