文章目錄
- 插入模式
- 光標移動
- 拷貝/粘貼/刪除/撤銷
- 塊操作
- 分屏
- 代碼縮進
- 命令組合使用
- 其他
- PowerVim
前言:本文內容大部分摘抄自酷殼和博客園 ? – ? CoolShell – 陳皓 ? 博客園 – 易先訊
插入模式
a
→ 在光標后插入o
→ 在當前行后插入一個新行O
→ 在當前行前插入一個新行cw
→ 替換從光標所在位置后到一個單詞結尾的字符
光標移動
0
→ 數字零,到行頭$
→ 到本行行尾gg
→ 到第一行G
→ 到最后一行:N
→ 到第N行w
→ 到下一個單詞的開頭e
→ 到下一個單詞的結尾%
: 匹配括號移動,包括(
,{
,[
(實用)*
和#
: 匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個) (實用)- /pattern:向下查找匹配指定模式的文本,按 n 查找下一個匹配項,按 N 查找上一個匹配項 (實用)
fa
→ 到下一個為a的字符處,你也可以 fs 到下一個為 s 的字符
拷貝/粘貼/刪除/撤銷
-
dd
→ 刪除當前行,并把刪除的行存到剪貼板里 -
ndd:剪切從光標所在行開始的 n 行
-
d$:剪切從光標所在位置到行末的文本
-
dG:剪切從光標所在行到文件末尾的文本
-
v 進入可視模式,移動光標選擇文本,然后按 d 剪切選中的文本 (實用)
可視化選擇是一個很有意思的命令,你可以先按v,然后移動光標,你就會看到文本被選擇,然后,你可能d,也可y,也可以變大寫等
-
yy
→ 拷貝當前行當行于ddP
-
y 的其他操作通 dd
-
p
→ 粘貼剪貼板 -
x
→ 刪當前光標所在的一個字符 -
u
→ 撤銷操作 -
Ctrl+r
→ 撤銷 “撤銷操作”,相當于保持不變
塊操作
塊操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]
0
→ 到行頭<C-v>
→ 開始塊操作<C-d>
→ 向下移動 (你也可以使用 hjkl 來移動光標,或是使用%,或是別的)I-- [ESC]
→ I 是插入,插入“--
”,按ESC鍵來為每一行生效,可以在行內的任意位置生效。A-- [ESC]
→ 在每一行的行后插入
分屏
:split
→ 創建分屏 (:vsplit
創建垂直分屏)<C-w><dir>
: dir就是方向,可以是hjkl
或是 ←↓↑→ 中的一個,其用來切換分屏。
代碼縮進
- ctrl+v 加入可視化操作,選擇代碼塊,然后:
J
→ 把所有的行連接起來(變成一行)<
或>
→ 左右縮進=
→ 自動給縮進
命令組合使用
你一定要記住光標的移動,因為很多命令都可以和這些移動光標的命令連動。很多命令都可以如下來干:
例如 0y$
命令意味著:
0
→ 先到行頭y
→ 從這里開始拷貝$
→ 拷貝到本行最后一個字符
你可可以輸入 ye
,從當前位置拷貝到本單詞的最后一個字符。
你也可以輸入 y2/foo
來拷貝2個 “foo” 之間的字符串。
其他
.
→ (小數點) 可以重復上一次的命令- N → 重復某個命令N次
gU
(變大寫)gu
(變小寫)
PowerVim
原生的 vim 比較難用,我們需要對其進行配置,但 Vim 的配置項多且較為復雜,因此在這里我推薦代碼隨想錄的 PowerVim,可以對 Vim 進行一鍵配置。
PowerVim – GitHub
PowerVim – Gitee
PowerVim 相關快捷鍵如下
正常模式下的快捷鍵(非插入模式)
- ;n // 打開文件目錄樹顯示在屏幕左側
- ;m // 打開當前函數和變量目錄樹顯示在屏幕右側
- ;h // 光標移動到左窗口
- ;l // 光標移動到右窗口
- ;k // 光標移動到上窗口
- ;j // 光標移動到下窗口 以上四個快捷鍵特別是打開多個窗口情況下。使用這個快捷鍵組合非常實用
- ;w // 保存文件
- ;u // 向上翻半屏
- ;d // 向下翻半屏
- ;1 // 光標快速移動到行首
- ;2 // 光標快速移動到行末
- ;a // 快速切換.h和cpp文件,寫C++的時候很方便
- ;e // 打開一個新文件
- ;z // 切回shell交互命令,輸入fg在切回vim,非常實用
- ;s // 水平分屏,并打開文件目錄選取想打開的文件,如果想新建文件,;e 就好
- ;v // 豎直分屏,并打開文件目錄選取想打開的文件,如果想新建文件,;e 就好
- ;fw // 查找項目內關鍵字,前提是你的系統已經按照了ACK
- ;ff // 查找項目內文件名
- ;gt // 跳轉到變量或者函數定義的地方,前提是安裝ctags,并且在在PowerVim輸入 ;tg命令 Jump to the definition of the keyword where the cursor is located, but make sure you have make ctags
- ;gr // 跳回,對應著;gt
- ;tg // 對當前目錄打ctag
- ;y // 保存當前選中的目錄到系統剪切板,前提是vim支持系統剪切板的寄存器
- ;gg // 按順序光標跳轉各個窗口
- ;t // 在輸入一個字符,則按照這個字符整體對齊
以下快捷鍵是不用;的,直接在 非插入模式 下輸入
- tb // 插入表格
- e // 快速刪除光標所在的詞
- tabc // 關閉當前tab,可以用:tabnew來打開一個新的tab Close tab, of course you should :tabnew a file first.
- F1 // 編譯并運行C++文件,自己寫的C++例子的時候一鍵編譯。前提手動在當前目錄建一個bin文件夾,這是用來存放編譯產生的執行文件
- F1 // 編譯Java文件
- F2 // 運行Java編譯的class文件,一般如果要編譯并運行Java文件 按F1編譯,在按F2運行
- gc // 快速注釋選中的塊(是visual模式下選中的塊)
- gcc // 快速當前行
- { // 光標向上移動一個代碼塊
- } // 光標向下移動一個代碼塊
- di( // 刪除括號里的內容
- di{ // 刪除花括號里的內容