vim三种模式
- 命令模式:打开文件后进入命令模式,在在命令模式中,所有在键盘上输入的字符都有可能是命令;
- 编辑模式:在命令模式中,输入
/,:,?
进入编辑模式,再按回车回到命令模式; - 插入模式:在 命令模式中,输入
i,I,o,O,a,A,R
进入插入模式,可以对文件进行编辑,按Esc键退出插入进入命令模式。
命令模式
定位命令
h: 左移一个字符
j: 下移一个字符
k: 上移一个字符
l: 右移一个字符
$: 直接移至行尾
0: 直接移至行首
Enter: 移至下一行行首
H: 移至屏幕上端
M: 移至屏幕中央
L: 移至屏幕下端
G: 到文件最后一行
gg: 移至文件第一行
23G: 到文件23行
ctrl+f 向下移动一页,相当于PageDown
ctrl+b 向上移动一页,相当于pageup
ctrl+d 向上移动半页
ctrl+u 向下移动半页
:行数+Enter: 到第几行,等于 行数G
:set nu+Enter: 显示行数
:set nonu+Enter: 不显示行数
:set hlsearch: 搜索字符高亮显示
删除命令:
x: 删除光标所在处的字符,向后删除,相当于delete
X: 删除光标前的字符,向前删除,相当于backspace
nx: 连续向后删除n个字符
nX: 连续向前删除n个字符
dd: 删除光标所在的行
ndd: 删除光标所在行向下n行内容
dG: 删除光标所在行到文本末尾的内容
d1G: 删除光标所在行到第一行的内容
D: 删除该行光标后的所有内容
:n1,n2d 删除给定的行数之间的内容
复制、剪切、粘贴命令:
yy或Y: 复制当前行
nyy或nY: 复制当前行以下n行
y1G: 复制光标所在行到第一行的所有数据
yG: 复制光标所在行到最后一行的数据
y0: 复制光标所在字符到该行行首的所有数据
y$: 复制光标所在字符到该行行尾的所有数据
p: 将已经选择复制或被删除的行放在当前行下;(y复制,p粘贴)
P: 将已经选择复制或被删除的行放在当前行上;(y复制,p粘贴)
替换和取消命令
r: 取代光标所在处的字符
R: 从光标所在处开始替换,直到按Esc键结束
s: 替换光标所在出字符,并进入插入模式
S: 替换光标所在全行,按Esc键结束
u: 取消上一步操作
U: 取消当前行所有操作
保存、退出命令:
:w 保存
:w new filename 另存为
:wq 保存退出
ZZ 命令模式下的保存退出
:q 退出
:q! 强制退出
:wq! 强制退出
:x 保存退出
:X! 强制保存退出
ZZ 命令模式下退出vim
搜索和替换命令:
/string 向下搜索字符串
?string 向上搜索字符串
n /string时向下查看搜索结果,?string时向上查看搜索结果
N ?string时向上查看搜索结果, /string时向下查看搜索结果
:%s/old/new/g 将搜索结果替换成新的结果
:n1,n2s/old/new/g 将n1-n2行所有搜索结果替换为新的
:%s/old//g 将搜索结果全部删除
其她命令:
:r fileName 打开一个文件
:! 后可以直接写操作系统指令
vi -o file1 file2 打开多个文件,切换时按ctrl+ww
vi -O file1 file2 竖屏打开多个文件,切换时按ctrl+ww
插入模式
i: 在光标前插入文本;
I: 在本行行头开始插入文本;
a: 在光标后插入文本;
A: 在本行末尾插入文本;
o: 在光标下插入新行;
O: 在光标上插入新行;
编辑模式
:set nu 设置行号
:set nonu 取消行号
:set hlsearch 高亮显示搜索结果
:%s/old/new/g 将搜索结果替换成新的结果
:%s/old//g 将搜索结果全部删除
:n1,n2s/old/new/g 将n1-n2行的old替换为new
: r file 将文件file读入到该文件光标处
编辑模式进入插入模式,只能通过命令模式
配置Vim默认值
vim配置文件为/etc/vim/vimrc,因此打开该文件进行配置:
$ vi /etc/vim/vimrc
比如配置默认显示行号、语法高亮、搜索结果高亮:
set nu #配置行号
syntax on # 语法高亮
set hlsearch #高亮搜索结果
vim块选择操作
vim除了以行为单位进行操作外,还可以以块为单位进行操作,命令如下:
V 字符、行选择,将光标经过的地方反白选择
ctrl+V 块选择,用长方形的方式选择数据
y 将反白选择的内容复制
d 将反白选择的内容删除
vim多文件操作
在同一个窗口中打开并显示多个文件
如果要在同一个窗口中对多个文件进行操作,则可以通过如下命令打开多个文件:
$ vim -o file1 file2 横排显示多个文件
$ vim -O file1 file2 竖排显示多个文件
ctrl + ww 在两个文件之间进行切换
在同一个窗口中打开并显示当前文件
通过vim -O file file2
会打开file和file2并同时显示在屏幕上,如果只显示一个文件,则在打开文件时不需要-o/-O
,并使用如下命令操作:
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出vim打开的所有文件
在同一个创建打开多个文件,可以方便的进行复制粘贴操作(yy,p)。
多窗口操作一个文件
vim可以将一个文件展示在不同的窗口上,可以方便地对文件前后内容进行对比、记录,使用步骤如下:
: sp 切割窗口
ctrl + w + j 将光标移动到下个窗口
ctrl + w + k 将光标移动到上一个窗口
ctrl + w + q 退出窗口