hjkl 上下左右移動vim
0 $ 跳到行首或行尾加密
gg shift+G 跳到整個文件的開頭行或者結尾行spa
1G ,2G,3G........NG ,跳到第1.2.3 N 行開頭3d
/String(n N 能夠循環的 上一個下一個切換) 快速定位到某個有String 的 行,blog
/^d 快速定位到以 d 開頭的行,string
/txt$ 快速定位的到以txt 結尾的行.擴展
y 複製. yy 3yy ygg yG (以行爲單位)配置
d 刪除 dd 3dd dgg dG(以行爲單位)vimrc
p 粘貼循環
x 刪除光標所在的字符
D 從光標處刪除到行尾
u undo 撤銷
^r redo 反撤銷,重作 Ctrl + r
r 修改一個字符
a 進入插入模式, 在光標的後面插入
i 進入插入模式, 在光標前面插入
o 另起一行插入
A shift + A 在當前行尾插入
: 進入末行模式(擴展命令模式)
v 進入可視模式
^v 進入可視塊模式 Ctrl +v
V 進入可視行模式
R 進入替換模式 在光標後進行批量替換,相似於爲Windows上的 文本Insert
插入模式下的VIm 關鍵字 自動補全 Ctrl + p / n
塊插入:(在指定塊前面加入字符) 選擇塊, Shift i 而後輸入字符 ,ESC(退出兩次)
塊替換: 選擇塊 r 輸入替換的字符
塊刪除 : 選擇塊, 輸入 d 或者 x
塊複製 : 選擇塊 , y
: 10 進入第10行
: w 保存
:q 退出
:wq 保存並退出
:w! 強制保存
:q! 不保存強制退出
:wq! 強制保存退出
: x 強制保存退出 或者ZZ
:X 給當前文件上鎖, 加密,
遠程登錄的過程當中 Ctrl +s 會鎖定 當前終端 , 輸入任何命令都不可見,可是命令仍然能夠執行 Ctrl +q 解除鎖定,展現命令
: 範圍 s/old/new/選項
:1,5 s/ string1 / string2 / 從第一行到第五行,把string1 替換爲string2 . / 能夠換作其餘分隔符, 只要保持同樣
: 5,$ s/root/yang $表示最後一行
:1,$ s/root/yang/g == :% s/root/yang/g % 表示全文,g表示全局
:% s/#/dev/sda#/var/sss#g #這裏表示分隔的標識符
:,8 s/root/yang 從當前行到第八行
:2,8 s/^#// 2-8行的開頭# 替換爲空
:1,9 s/.*/#&/ 1-9行 前面計入#字符(.*整行,& 引用查找的內容)
:w 存儲到當前文件
:w /tmp/aaa.txt 另存爲tmp/aaa.txt
:1,3 w /tmp/aaa.txt 1至3行另存爲 /tmp/aaa.txt 文件
:r /etc/hosts 讀入文件到當前行後
:5 r /etc/hsotst 讀入文件到第五行後
臨時設置:設置了以後只對當前vim 文件有效,退出則無效
:set nu 設置行號
:set ic 不區分大小寫
:set ai 自動縮進
:set list 顯示控制字符
:set nonu 取消設置行號
:set noic .....
永久設置環境 : 修改vim的環境配置文件
/etc/vimrc 影響全部系統用戶
~/.vimrc 影響某一個用戶
Vim 打開多個文件
vim - O 文件1, 文件2 ,。。。(O 表示左右並排顯示, o 表示上下並排顯示)
:qall 退出所有,:q 單個退出,其餘命令所有操做也加 all
^ww (Ctrl + ww) 切換窗口
比較兩個文件的不一樣
vimdiff 文件1 , 文件2