[Note] VIM 程式編輯器
keywords: vim
, editor
, cmd
👍即將失傳的古老技藝 Vim @ 高見龍
TL;DR
A # 從行末開始編輯
d0 # 從此位置開始刪除到行首
d$ # 從此位置開始刪除到行末
dw # 從此位置刪除第一個單字
dd # 刪除此行
0 # 跳到行首
$ # 跳到行末
u # undo,回到上一步
[ctrl + r] # redo,回到下一步
W # word,往後跳一個單字
B # backward,往前跳一個單字
gg # 跳到文件第一行
G # 跳到文件最後一行
ZZ # 如果有修改的話就儲存並離開
使用 VIM 開啟檔案
vim # 進入 VIM 編輯器
vim <filename> # 開啟某個檔案
[ctrl + Z] # 讓 VIM 進入背景
fg # 讓 VIM 回到主畫面
# 其他
:help <command>
文字編輯
i # 進入 INSERT 模式
I # 進入 INSERT 模式,並跳到行首
a # append,在當前游標後一個字進入 INSERT 模式
A # 進入 INSERT 模式,並跳到行尾
o # 新增下一行並進入 INSERT
O # 新增上一行並進入 INSERT
[esc] # 離開編輯模式(或者 Ctrl + [ )
# VIM 刪除的內容會被放到暫存器中
x # 刪除當前游標的文字或所選文字
c # 刪除當前游標的文字或所選文字,並同時進入 INSERT
C # 刪除游標位置到行尾的所有內容,並同時進入 INSERT
d # 刪除所選文字
D # 刪除游標位置到行尾的所有內容
dd # 刪除一整行
2dd # 刪除兩行
dG # 刪除游標位置開始當文末的所有內容
dgg # 刪除游標位置開始當文首的所有內容
r # replace,取代游標的文字
R # 進入取代模式(REPLACE)
= # 排版,自動根據程式語言進行縮排(需先把要縮排的程式碼進行選取)
>> # 增加縮排,當有選取內容是只需要按一下 >
<< # 減少縮排,當有選取內容是只需要按一下 <
:set shiftwidth=2 # 變更縮排長
存檔和離開
# 存檔
:w <filename> # 存檔。僅第一次要輸入檔名,之後使用 :w 就會存檔
:q # 離開
:q! # 離 開不存檔
:wq # 存檔並離開
移動游標
# 移動游標
hjkl # LBTR
gj # 跳到該句子的下一行
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 內的暫存器和電腦的剪貼簿通用