一、打开文件
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