我的設定檔在這
新的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
向上s
substitute 代替,剪下遊標上的字並進入插入模式r
取代一個字元- 插入模式下的操作
C-w
刪除遊標往回的一個字C-u
刪除遊標往回的所有字- Note: 在 Bash 下很多操作也通用喔 https://github.com/tpope/vim-rsi
- 在檔案取代
%s
%s/foo/bar/gc
g
是全部、c
是確認
比剛剛更會移動
標記模式
m{a-zA-Z}
按一下m
加上英文字就可以在那個字上標籤'{a-zA-Z}
單引號加上標籤就飛過去那一行囉`{a-zA-Z}
單引號加上標籤就飛過去標記的字囉- 上面兩個也可以組合刪除,
d'a
就是刪除刪到'a
的地方 - 刪掉他
delm aA
delete mark a and A
選取大師
- 選取技能之排列組合
- 動作類型:
v
visual 選取d
delete 剪下c
change 剪下後插入y
yank 複製
- 範圍:
i
inner 選取物件條件a
around 包含選取條件 - 名詞條件:
w
words
sentencep
paragrapht
tag (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
:bn
go next buffer:bp
go previous buffer:bl
go last:bf
go first
:bd
delete 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>
都用 ,
來示範,因此指令都是 ,,
開頭
- 跳到字元
,,s
search 跳到搜尋此字元的位置,,f
從游標往下 search,跳到搜尋此字元的位置,,F
從游標往上 search,跳到搜尋此字元的位置
- 跳到字首
,,b
從游標往下 search,跳到搜尋此字首的位置,,w
從游標往上 search,跳到搜尋此字首的位置
fzf.vim
:Files
搜尋檔案名稱 (綁定到<leader>ff
):Commands
搜尋指令名可能沒什麼用XDD (綁定到<c-P>
)
vim-visual-multi
c-n
選取遊標上的字- 按
n
N
選取下/上一個相同的字 q
跳過下一個選擇Q
刪除目前選擇
- 按
3c-n
選取接下來的 3 個\\A
選取文件上全部遊標上的那個字- C-mouseleft 選取點擊字元
- C-mouseright 選取點擊字
vim-fugitive
更方便使用 Git 的插件,Github 連結
- 用
:G
來呼叫 git 指令,例如說:G commit -m init commit
:Git blame
blame 一下都是誰寫了些什麼: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