筆者只記錄最常用的vim命令,相信也很少有人能夠將其全部記住,畢竟這只是一個編輯工具。也不值得我們投入大量的精力。只求以最小的精力,儘可能滿足我們的需要。
目錄
一. vim常用模式
正常模式:按:即可進入,此模式下可輸入命令進行操作
插入模式:按 i ,可對內容進行編輯,在光標處進行插入,退格以及回車操作
可視模式:按v以字符精度進行選中,按V以行精度進行選中,ctrl+v以塊精度進行選中。
可視模式下可進行d刪除,y複製,p黏貼
二.vim打開方式
vim file 正常打開
vim + file 從文件的末尾開始
vim num file 從某一行開始
三.vim文檔操作
:w 保存修改
:wq 保存並退出
:q 退出
:q! 強制退出
:e file 關閉當前文件,並打開其他文件
:e! file 放棄對當前文件的修改,編輯新的文件。
:e#或ctrl+^ 回到上一個編輯的文件
:Sex 水平分割,並瀏覽文件系統。在文件系統回車直接進入vim模式
:Vex 垂直分割
四.光標移動
(1)基本移動
0 移動到行首
shift + 4 移動到行尾
gg 文件頭部
G 文件尾部
ctrl+f: 下翻一屏。
ctrl+b: 上翻一屏
ctrl+e: 向下滾動一行。
ctrl+y: 向上滾動一行
(2)標記
m{a-z}: 標記光標所在位置,局部標記,只用於當前文件。
m{A-Z}: 標記光標所在位置,全局標記。標記之後,退出Vim, 重新啓動,標記仍然有效。
`{a-z}: 移動到標記位置。
:marks 顯示所有標記
:delmarks a
:delmarks! 刪除所有標記
五.vim文本插入
指定數量插入字符 eg:按8,再按i,進入插入模式,輸入=, 按esc進入命令模式,就會出現8個=。 這在插入分割線時非常有用,如30i+<esc>就插入了36個+組成的分割線。
o: 在下面新建一行插入;
O: 在上面新建一行插入;
:r filename在當前位置插入另一個文件的內容。
:r !date 在光標處插入當前日期與時間。同理,:r !command可以將其它shell命令的輸出插入當前文檔。
六.查找替換
:/something: 在後面的文本中查找something
:?something: 在前面的文本中查找something。
n: 向後查找下一個。
N: 向前查找下一個
:s/old/new - 用new替換當前行第一個old。
:s/old/new/g - 用new替換當前行所有的old。
7.多文件編輯
分屏編輯
vi -o filenames 在水平分割的多個窗口中編輯多個文件。
vi -O filenames 在垂直分割的多個窗口中編輯多個文件。
ctrl+w 窗口切換
qall – 關閉所有窗口,退出vim。
:wall – 保存所有修改過的窗口。
:only – 只保留當前窗口,關閉其它窗口。
ctrl+w + –當前窗口增高一行。也可以用n增高n行。
ctrl+w - –當前窗口減小一行。也可以用n減小n行。
ctrl+w < –當前窗口減少一列。也可以用n減少n列。
ctrl+w > –當前窗口增寬一列。也可以用n增寬n列。
多標籤編輯
vim -p files: 打開多個文件,每個文件佔用一個標籤頁。
tabn – 切換到下一個標籤。Control + PageDown,也可以。
:tabp – 切換到上一個標籤。Control + PageUp,也可以。
七.撤銷與重做
[n] u: 取消一(n)個改動。
:undo 3– 撤銷3個改變。
:undolist – 你的撤銷歷史。
ctrl + r: 重做最後的改動。
U: 取消當前行中所有的改動。
:earlier 3m – 回到3分鐘前
:later 5s – 前進5秒
八.文件加密
vim -x file: 開始編輯一個加密的文件。
:X – 爲當前文件設置密碼。
:set key= – 去除文件的密碼
九.文件編碼
:e ++enc=utf8 filename, 讓vim用utf-8的編碼打開這個文件。
:w ++enc=gbk,不管當前文件什麼編碼,把它轉存成gbk編碼。
:set fenc或:set fileencoding,查看當前文件的編碼。
在vimrc中添加set fileencoding=ucs-bom,utf-8,cp936,vim會根據要打開的文件選擇合適的編碼。 注意:編碼之間不要留空格。 cp936對應於gbk編碼。 ucs-bom對應於windows下的文件格式。
。