一、打開文件
1.Vim +N 文件:打開文件後光標處於第N行
[root@CentOS7 data]# cp /etc/passwd /data/passwd.bak
[root@CentOS7 data]# vim +10 /data/passwd.bak
跳轉到文章末尾:G
2.只讀形式打開,不能強制保存!
[root@CentOS7 data]# vim -m passwd.bak
3.比較兩個文件:
[root@CentOS7 data]# vim -d passwd.bak test.txt
2 files to edit
退出::qall
4.打開二進制文件
[root@CentOS7 data]# dd if=/dev/zero of=/data/binary bs=1 count=3
3+0 records in
3+0 records out
3 bytes (3 B) copied, 0.000531175 s, 5.6 kB/s
[root@CentOS7 data]# ll
total 12
-rw-r--r--. 1 root root 3 May 16 08:04 binary
-rw-r--r--. 1 root root 2304 May 11 14:18 passwd.bak
-rw-r--r--. 1 root root 37 May 16 07:45 test.txt
[root@CentOS7 data]# cat binary
[root@CentOS7 data]# hexdump -C binary
00000000 00 00 00 |...|
00000003
[root@CentOS7 data]#vim -b binary
- 轉換可讀的16進制
轉換可讀的16進制
:%!xxd
- 修改爲ABC的16進制,並轉回二進制保存退出:
二、命令模式
1.進入插入模式:
O:
光標上方
o
光標下方
A
光標所在行尾
a
光標右移1個字符
I
光標所在行行首輸入
i
光標處輸入
2.直接退出:用於進入不想編輯直接退出。
快捷鍵:
ZZ保存退出
ZQ不保存退出
---------------------------------跳轉---------------------------------
3.光標移動快捷鍵: h左j下k上l右 (跳多行: 數字N + h左j下k上l右)
行首0 行尾$ 非空白行首^
4.單詞間跳轉快捷鍵:
w
:下一個單詞
b
:前一個單詞首
e
:單詞尾
5.數字N +快捷鍵
(1).句間移動:(
上 )
下
(2)段落間移動:{
上 }
下
---------------------------------跳轉---------------------------------
---------------------------------增---------------------------------
6.複製:
複製整行yy
複製多行:N yy
粘貼:P
下一行 p
上一行
複製到第一個X字符:yt X
---------------------------------增---------------------------------
---------------------------------刪---------------------------------
7.刪除:
刪除整行:dd
刪除多行:N dd
刪除到第一個X字符:dt X
---------------------------------刪---------------------------------
---------------------------------修改--------------------------------
8.字符編輯:
x
刪除字符 (刪除多個:數字N x)
xp
交換前後字符位置
~
轉換大小寫
J
刪除行後換行符
r
替換字符
R
切換replace模式
---------------------------------修改--------------------------------
---------------------------------查看--------------------------------
/
查找字符:向尾
?
查找字符:向首
取消高亮:擴展命令模式下:nohlsearch
(簡寫:noh
)
----------------------------------查看-------------------------------
-----------------------------------撤銷------------------------------
撤銷最近更改: u
**
撤銷多次修改:N u
撤銷光標所在行的所有操作:U
------------------------------------撤銷------------------------------------
----------------------------------重做-------------------------------
重做前一次撤銷的操作Ctrl r
----------------------------------重做-------------------------------
----------------------------------重複-------------------------------
重做前一個操作 .
重做前一個操作多次N .
---------------------------------重複--------------------------------
-------------------------------多剪切板------------------------------
共a-z 26個剪切板,10個數字寄存器(0-9):
“ay “ap
“by “bp
“cy “cp
“dy “dp
--------------------------------多剪切板-----------------------------
---------------------------------標記--------------------------------
26個字母均可做標記:m a-z
跳轉到某個標記:’ a-z
跳轉到未標記位置提示:
-------------------------------標記----------------------------------
--------------------------------記錄宏-------------------------------
錄製:q 宏名稱
停止錄製:q
執行:@ 宏名稱
重新執行上次執行宏:@@
-------------------------------記錄宏--------------------------------
2.當前頁面跳轉:
H
頁首 M
頁中 L
頁尾
整行移動(光標所在行)
zt
頂 zz
中 zb
底部
三、拓展命令模式
1.w
保存
2.wq
保存退出
3.x
保存退出
4.q
退出
5.q!
不存退出
6.r
文件名:讀文件到當前文件中
:r /etc/issue
7.另存爲 w 文件名
:w passold.bak
8.不退出vim情況執行命令:!命令
:! ls /boot/
9.把命令結果放入vim文件中,結果插入到光標所在行的下一行:r! 命令
:r! hostname
10.地址定界(跳轉)
: N
跳轉到第N行
:N + M
從N行到M行
.
當前行
$
最後一行
%
全文=1,$
11.查找替換-區分大小寫
:s 分隔符 要查找內容 分隔符 替換爲的內容 分隔符
全局搜索:%s分隔符 要查找內容 分隔符 替換爲的內容 分隔符
替換光標所在行查找到的內容:s #roo#admin#
如果光標所在行未找到關鍵詞則報錯提示
目標:替換所有查找到的內容 實際:仍然是替換光標所在行,需要加全局搜索%s
:s#root#admin#g
:%s#root#admin#g
12.多窗口
(1)多文件分割:
vim –o 文件1 文件2 水平分割
vim –O 文件1 文件2 垂直分割
窗口切換快捷鍵:Ctrl ww
兩個都保存退出:wqall
示例:vim -O test.txt binary
(2)單文件分割:
Ctrl w s 水平
Ctrl w v 垂直
Ctrl w q 取消相鄰窗口
Ctrl w o 取消全部窗口
保存退出:wqall