跳至主要内容

[Vue Router] TL;DR

why vim?

I’ve been using Vim for about 2 years now, mostly because I can’t figure out how to exit it.

參考資料

相關連結


內容簡介

Vim真的超好用~

Cheatsheet

Vim

在安裝vim的時候其實就有送一份教學文件了! 開啟方式為在terminal 輸入指令 vimtutor zh_tw 或是有任何問題都可以使用:h <想問的關鍵字>

快速指令查詢

  • 讀取設定檔案: :source <路徑>
  • 查看暫存器內容::reg
  • 查看目前開啟的buffer::ls
  • 使用shell的指令::! 指令 (在目前編輯位置貼上指令回傳內容::r !指令)
  • 查詢現在的buffer: :ls
  • 查詢所有mapping: :map
  • 清除所有自己的mapping(不包含Plugin)::mapclear
  • 清除特定mapping::unmap <欲清除map>
  • 設定檔案格式: :set filetype=<檔案格式>

套件常用功能

  • 開啟、關閉輔助線:<F1>(vim-indent-guide)
  • 可以開啟nerdtree:<F2>(Nerdtree)
  • 開啟tagbar:<F3>(tagbar)//還不知道怎麼用..
  • 快速整理文件縮排:<F5> (自己做的mapping)
  • (in nerdtree)
    • 新增,修改,刪除檔案(or資料夾):m (Nerdtree)
    • 顯示隱藏資料:I(Nerdtree)
    • 開啟、收合資料夾:o(Nerdtree)
    • 退到上一層資料夾:u(Nerdtree)
    • 進到資料夾:C(Nerdtree)
  • (in Visual mode)在左右新增<tag>等:S+”/’/<tag>...(vim-surround)
  • (in normal mode)已經有左右標籤的狀態下可以替換:cs<原標籤><欲改標籤> (vim-surround)

其他

  • 存檔:
    • 一般存檔: :w
    • 另存新檔: :w <new_file_name>
  • 離開檔案: :q(!)
  • 調整目前所在行在視窗中的位置:
    • zz調整到畫面中間
    • zt調整到畫面上方
    • zb調整到畫面下方
  • 復原&重作
    • 復原:u
    • 重做:ctrl+r
  • 精簡行(多行壓縮):zf (取消方法:l撐開行 or zd)
  • 重複相同動作.

移動

  • 上下左右:k,j,h,l
  • 在同一行內上下切換:g+jg+k
  • 前往第n行:n+G
  • 跳到文章始/末:
    • 起始:gg
    • 文末:G
  • 跳躍文章段落(以空白行區分)
    • }跳到下一個段落
    • {回到上一個段落
  • 根據文字跳躍
    • w前往下一個Word、W忽略標點前往下一個Word
    • b前往上一個Word、B忽略標點前往上一個Word
    • e跳到字尾、E忽略標點跳到字尾
  • 同行往後跳到指定文字:f+key (同行往前跳到指定文字:F+key)
  • 行跳躍的三種方式:
    • 0跳到行首(包含空白)
    • ^跳到該行第一個字
    • $跳到行末(包含空白)
  • 快速下一頁:ctrl+f
  • 快速上一頁:ctrl+b

輸入

  • 直接輸入相關
    • a在所在位置後插入文字、A在目前所在行的最後插入文字
    • i在所在位置前插入文字、I在目前所在行的最前面插入文字
    • o新增下一行並插入文字、新增上一行並插入文字
  • 刪除相關
    • x刪除目前所選文字、X刪除目前所選文字之前的文字
    • d刪除所選(in visual mode)的文字、D刪除目前所在行所在位置之後的全部文字
    • c刪除所選文字並直接進入insert模式&C刪除目前位置之後全部文字並進入insert模式
    • dd可以直接刪除目前所在整行 (同樣可使用量詞eg:2dd
    • r可以替代目前文字,R進入Replace模式,替代目前位置之後所有文字直到退出Replace模式
  • 變換大小寫: ~ (visual模式)
  • 將下一行退回此行(中間會有一格空白): J (可搭配量詞)
  • ⚠️ IN INSERT
    • ctrl+w快速刪除目前所在位置前面的word
    • ctrl+u快速刪除目前所在未至前面所有文字

搜尋

取消搜尋任何關鍵字::noh

  • 第一組
    • /+欲搜尋的字搜尋字串
    • n前往下一個字串
    • N前往上一個字串
    • * 搜尋目前所在位置字串
  • 第二組
    • ?+欲搜尋的字搜尋字串
    • n前往上一個字串
    • N前往下一個字串
    • # 搜尋目前所在位置字串

複製貼上

  • v選取文字、V選取行
  • 在visual模式下y可以複製、在normal模式下p可以貼上 (P貼上位置會跟p不同,一個在前一個在後)
  • 複製所在行:yy
  • 指定暫存器:
    • 儲存到暫存器a:”ay
    • 貼上暫存器a的內容:”ap
    • 顯示目前暫存器中的內容::reg

分頁&分割視窗

  • 基本編輯器
    • 開啟編輯器(Terminal):vim
    • 開啟 file name這個檔案(Terminal):vim <file name>
    • 開啟file name的檔案(Vim)::e <file name>
  • 分頁
    • 新分頁(Terminal):vim -p <filename1> <filename2> [if any]
    • 新分頁(Vim):tabe <file name>
    • 切換下一個分頁:gt
    • 切換到上一個分頁:gT
  • 分割視窗
    • 水平分割視窗開啟兩個檔案(Terminal):vim -o <filename1> <filename2>
    • 垂直分割視窗開啟兩個檔案(Terminal):vim -O <filename1> <filename2>
    • 開啟水平新視窗(Vim)::new
    • 開啟垂直新視窗(Vim)::vnew
    • ctrl+w+w切換到下一個視窗(循環切換)、ctrl+w+W可以逆向循環切換
    • ctrl+w+hjkl直接指定切換到上下左右方向的視窗

Buffer

查詢目前所有的buffer::ls

  • 切換buffer::b <buffer編號|部分檔案名稱>
  • 跳到下一個buffer(根據編號)::bn (next)
  • 跳到上一個buffer(根據編號)::bp (previous)
  • 關閉buffer::bd
  • 展開所有buffer變成分頁::tab ball