ctrl+w 一次刪除一個單字
ctrl+u 一次刪除一整行指令
ctrl+r 找尋與輸入字串相符的最近執行過的指令
vim指令
ctrl+z 將vim隱藏到背景執行
fg 將vim恢復執行
vim模式
normal(commad)預設
edit
visual(select)
從normal到edit 按i(insert)或a(append 游標所在的後一個字元)或o(new line 新的一行)
從normal到visual
按v(選一個字母)
或
V(選一整行)
或
ctrl+v(選一個方形)
回到normal模式按 esc或ctrl + [
從visual到edit 按c
無法從edit到visual
在normal或visual中游標移動:按h(游標往左移動)、j(往上移動)、k(往下移動)、l(往右移動)
vim小遊戲,練習使用hjkl移動游標:http://vim-adventures.com/
在normal或visual中可使用的指令:
w、W 往後跳一個字
b、B 往前跳一個字
0 跳到行頭
$ 跳到行尾
fx 往後找最近的x(x可以替換成其他想要找的字母)
Fx 往前找到最近的x(x可以替換成其他想要找的字母)
/sit 搜尋離游標最近的sit,在按下n會跳到下一個找到的sit(sit可以替換成其他想找的單字)
* 找尋離目前游標最近且與游標所在的單字相符的單字
} 移到下一個段落(section)
{ 移到上一個段落(section)
g 移到頁首
G 移到頁尾
zz 將游標所在的行往上移
zt 將游標所在的行移到畫面最上面
zb 將游標所在的行移到最底下
vit 選取2個tag之間的文字(編輯HTML文件)
vat 選取2個tag與2個tag之間的文字
vi" 選取2個"之間的文字
va" 選取2個"之間的文字,連""一起選取
viw 選取目前游標所在的單字
將以上的指令的v替換成c代表選取之後進入編輯模式
將以上的指令的v替換成d代表選取之後刪除
:w /temp/abc.txt 將目前的檔案存到temp資料夾之下,並存成abc.txt(第一次存檔)
:w 存檔
:q 離開
:q! 離開但不存檔
vi abc.txt 使用vim編輯abc.txt
:tabe 開一個新的tab(tabe後可空一格)
vi -p test1.txt test2.txt test3.txt test4.txt 將指定的檔案使用tab全部開啟
gt 移到前一個tab
gT 移到後一個tab
:new 新增一個水平分割視窗
:vnew或:vs 新增一個垂直分割視窗
:bd 關閉目前的分割視窗
vi -o test1.txt test2.txt test3.txt test4.txt 將指定的檔案全部開啟並使用上下分割視窗將所有檔案顯示出來
vi -O test1.txt test2.txt test3.txt test4.txt 將指定的檔案全部開啟並使用左右割視窗將所有檔案顯示出來
切換分割視窗
ctrl+w+h 切換到左方分割視窗
ctrl+w+j 切換到下方分割視窗
ctrl+w+k 切換到上方分割視窗
ctrl+w+l 切換到右方分割視窗
ctrl+w+w 切換分割視窗
:ls 列出目前所有的buffer(所有開啟的檔案)
:b3切換到編號的buffer
:bd關閉目前的budffer
:b filename 切換到指定檔名的buffer
:tab ba 將所有的buffer使用tab打開
:d3w 一次刪除3個字母
vim相關組合指令(以下的指令前面加v代表選取,加d代表刪除):
aw around world
iw inner world
as a sentence
is inner sentence
ap a paragraph
ip inner paragraph
摺疊程式碼
將要折疊的程式碼選取之後按:zf
按l取消折疊
選取全部程式碼
ggVG
將V換成zf --> 全部程式碼折疊
將V換成d --> 全部程式碼刪除
Editing
在一般模式底下
D 清除游標所在行之後的資料
C 清除游標所在行之後的資料,並進入編輯模式
u 回到上一步(undo)
ctrl+r 取消復原(redo)
dG 清除游標所在之後的資料
dgg 清除游標所在之前的資料
z 刪除一個字元
. 重複上一個動作(action 進入編輯模式之後,執行某些指令,離開編輯模式)
dd 刪除游標所在行的所有資料
3dd 刪除3行
~ 將游標所在的字元切換為大寫或小寫
:m+ 將游標所在行往下移一行
:m-2 將游標所在行往上移一行
>> 縮排
shift+<< 減少縮排
= 將游標所在行程式碼按照格式縮排(re-format)
gg=G 將所有程式碼按照格式縮排(re-format whole file)
yy 複製游標所在的行
3yy 複製游標往後3行
p 貼上
3p 貼上3次
dw 刪掉游標之後的單字
diw 刪掉游標所在的單字
cw 刪掉游標之後的單字,並進入編輯模式
ciw 刪掉游標所在的單字,並進入編輯模式
r 進入替換模式,一次替換一個字
R進入替換模式,一次替換一個單字
J 將底下一行移到游標所在行
3J 將底下3行移到游標所在行
:set number 顯示行號
.vimrc vim的設定檔,可依個人喜好設定
set history=1000 set undolevels=100 取消復原
set number 加上行號
set cursorline 游標所在行加上底線
setclipboard+=unnamed 將系統的剪貼簿與vim的同步
set scrolloff=5 移到最底下或最前面時可看到5行
set hlsearch 將搜尋到的字標示出來
set visuallbell 將錯誤的提示聲音關掉
set noerrorbells將錯誤的提示聲音關掉
noremap <F7> gT 將按鍵F7對應到按下gT的功用
:sourse .vimrc 重新套用設定檔
vim外掛管理器
在終端機執行mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/
.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
在.vimrc中貼上這段:execute pathogen#infect()
在vim中安裝資料夾樹狀圖
在終端機執行cd ~/.vim/bundle && git clone git://github.com/tpope/vim-sensible.git