我的設定檔在這
新的Neovim 的設定檔,有附上使用說明歡迎給建議或是幫忙 Debug (?
還有一個以前用的 Vim 設定檔,不過沒怎麼更新了
基本操作
移動你的游標
w,W往前到下一個字的字首,e,E下一個字的字尾b,B往回到前一個字的字首$跳到行尾0跳到行首,^跳到該行第一個文字(不算 TAB 或是空白){,}往前/後跳一個段落f之後按任意字元,跳到該行下一個的那個字元f之後按任意字元,按;再下一個,按,回上一個C_o跳回上一個遊標的位置,C_i跳到下一個C_d向下滾動,C_u向上滾動*搜尋並前往下一個目前遊標上的字,:noh取消#搜尋並前往上一個目前遊標上的字,:noh取消
複製貼上
p往後貼上,P往游標前貼上u是 undo,C_r再 Redo 回去- 也可以用
"然後a~z來指定暫存器,例如"ay複製"ap貼上 d是剪下,x可以剪下遊標上的那一個字c可以刪除選取並原地進入插入模式,C刪除該行以後並進入插入模式>><<可以縮排該行
寫字囉
i插入模式I在該行第一個字進入插入模式a在遊標後面進入插入模式A在行末進入插入模式o向下產生新一行進入插入模式O向上ssubstitute 代替,剪下遊標上的字並進入插入模式r取代一個字元- 插入模式下的操作
C-w刪除遊標往回的一個字C-u刪除遊標往回的所有字- Note: 在 Bash 下很多操作也通用喔 https://github.com/tpope/vim-rsi
- 在檔案取代
%s%s/foo/bar/gcg是全部、c是確認
比剛剛更會移動
標記模式
m{a-zA-Z}按一下m加上英文字就可以在那個字上標籤'{a-zA-Z}單引號加上標籤就飛過去那一行囉`{a-zA-Z}單引號加上標籤就飛過去標記的字囉- 上面兩個也可以組合刪除,
d'a就是刪除刪到'a的地方 - 刪掉他
delm aAdelete mark a and A
選取大師
- 選取技能之排列組合
- 動作類型:
vvisual 選取ddelete 剪下cchange 剪下後插入yyank 複製
- 範圍:
iinner 選取物件條件aaround 包含選取條件 - 名詞條件:
wwordssentencepparagraphttag (HTML, XML tags)'"引號)]}>括號
- 動作類型:
viw選取遊標上的字 i=inner w=wordciw同上剪下遊標上的字並進入插入模式vi"選取"中間的字,'也可以va"差別是會包含雙引號 a=around
切分頁(Tab) 囉
vim -p檔案們,把他們開到新分頁:e file.txt在同一個分頁開啟新檔案:tabe開新分頁 (可以:w存起來)gt下一個分頁,gT上一個分頁:new在上方產生水平分割 Windows,:vnew垂直分割
你的 Buffer
:ls
4 h "plugin-config.vim" line 3
5 %a "prelude.vim" line 50
6 h "[No Name]" line 1
7 #h "init.vim" line 5
14 h "filetypes.vim" line 0
15 h "clipboard.vim" line 1
16 h "[No Name]" line 0
Press ENTER or type command to continue
:ls查看分頁內的 buffer 們- 切換分頁
:b+數字可以切換到指定 Buffer,例如:b4:b+部分檔案名也可以切換,例如:b init:bngo next buffer:bpgo previous buffer:blgo last:bfgo first
:bddelete buffer
常用指令
想看 key mapping
你是不是設定了很多 key mapping 但忘記了呀?
:map
或是想指定模式也可以
:nmap for normal mode mappings
:vmap for visual mode mappings
:imap for insert mode mappings
輸出出來看的方法
:redir! > vim_keys.txt
:silent verbose map
:redir END
ref: https://stackoverflow.com/a/15756785
NerdTree
視窗切換
C_w+ [上下左右] 切換到 [上下左右] 的分割視窗C_w+w切換到下一個分割視窗
NerdTree 視窗
- 對檔案
t開啟新分頁 - 對檔案
o開啟新分頁,並跳過去 - 對資料夾
o展開 / 縮合資料夾 - 按下
m會進入檔案管理模式- 再來按
a可以新增檔案(資料夾的話就在後面加一個/)
- 再來按
Easy Motion
這裡的 <leader><Plug> 都用 , 來示範,因此指令都是 ,, 開頭
- 跳到字元
,,ssearch 跳到搜尋此字元的位置,,f從游標往下 search,跳到搜尋此字元的位置,,F從游標往上 search,跳到搜尋此字元的位置
- 跳到字首
,,b從游標往下 search,跳到搜尋此字首的位置,,w從游標往上 search,跳到搜尋此字首的位置
fzf.vim
:Files搜尋檔案名稱 (綁定到<leader>ff):Commands搜尋指令名可能沒什麼用XDD (綁定到<c-P>)
vim-visual-multi
c-n選取遊標上的字- 按
nN選取下/上一個相同的字 q跳過下一個選擇Q刪除目前選擇
- 按
3c-n選取接下來的 3 個\\A選取文件上全部遊標上的那個字- C-mouseleft 選取點擊字元
- C-mouseright 選取點擊字
vim-fugitive
更方便使用 Git 的插件,Github 連結
- 用
:G來呼叫 git 指令,例如說:G commit -m init commit :Git blameblame 一下都是誰寫了些什麼:Gvdiff呼叫出檔案更新差異 (好像也可以解 Confilet)
tpope/vim-surround
- 快速添加引號
- 選取後
S" ysiw"(yank surround inner word “)
- 選取後
- 移除引號
ds"(delete surround “) - 更改引號
cs'"(change surround ’ to “) - 安裝
tpop/vim-repeat達成用.重複操作 - Note: 搭配 visual multi 真香 XDD https://youtu.be/wjoSbLGZTao?list=PLBd8JGCAcUAH56L2CYF7SmWJYKwHQYUDI&t=782
tomtom/tcomment_vim
<C-/><C-/>註解掉或是解開
telescope.nvim
Ref
https://github.com/wsdjeg/vim-galore-zh_cn Cheat Sheet https://vim.rtorr.com/lang/zh_tw