文章目录
一、vim的工作模式
vim一般有以下几种工作模式:
- 普通模式(NORMAL模式):使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作
- 插入模式(INSERT模式):也可以叫做编辑模式,在普通模式下敲击 i 、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑
- 命令行模式:在普通模式下,先输入冒号
:
,接着输入命令,就可以通过配置命令对vim进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc
配置文件中,每次打开默认配置执行 - 可视化模式(VISUAL LINE模式):在普通模式下敲击前盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作
- 替换模式(REPLACE模式):如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击
R
键就可以直接替换
vim的各种工作模式可以通过不同的键进行切换,默认使用ESC键返回到普通模式
二、操作命令
打开命令
vim filename #打开或新建一个文件,并把光标置于首部
vim + filename #打开一个文件,并把光标置于末尾
vim +n filename #打开一个文件,并把光标置于第n行
vim -R filename #只读方式打开一个文件
光标移动命令
单个字符移动
h #向左移动
l #向右移动
j #向下移动
k #向上移动
词组移动
w/W #将光标移动到下一个单词的开头
b/B #将光标移动到前一个单词的开头
e/E #将光标移动到下一个单词的词末
行移动
$ #将光标移动到当前行的行尾
0 #将光标移动到当前行的行首
文本移动
gg #移动到文件开头
G #跳转到文件末尾
nG #跳转到第n行
'' #(两次英文单引号)返回到跳转前的位置
n% #移动到文件n%的位置
H #(Head)移动到当前屏幕显示的开头
M #(Middle)移动到当前屏幕显示的中间
L #(Last)移动到当前屏幕显示的末尾
Ctrl+g #查看当前的位置状态("test.yaml" line 10 of 46 --21%-- col 4)
文本插入命令
i #在当前光标的前面插入字符
a #在当前光标的后面追加字符
o #在当前光标的下一行行首插入字符
O #在当前光标的上一行行首插入字符
I #在一行的开头添加文本
A #在一行的结尾处添加文本
u #撤销本次修改
Ctrl+g #重做最后的改动
文本删除命令
字符删除
x #删除当前光标所在处的字符
X #删除当前光标左边的字符
行删除
d$ #删除从光标到一行末尾的所有内容,效果同`D`
d0 #删除从光标到一行开头的所有内容
dd #删除当前光标处的一整行内容
ndd #删除从光标所在行开始的n行代码
dgg #删除从光标所在行向上到文本开头的内容
dG #删除从光标所在行向下到文本结尾的内容
文本复制与粘贴命令
复制与粘贴
y #复制
p #在光标后面或下一行粘贴
y$ #复制从当前光标到行结尾的所有单词
y0 #复制从当前光标到行首的所有单词
yy #复制一整行
nyy #复制从当前光标所在行开始的n行
复制文本块
复制块:
1.首先进入visual模式:v
2.移动光标选择文本
3.复制与粘贴的操作
全文复制:
ggvG #全选,到开头后进入visual模式,再跳转到末尾
文本的修改与替换命令
~ #修改光标下字符的大小写
rx #将当前光标下的字符替换为x
R #进入到替换模式
文本的查找与替换命令
查找命令
/string #向后查找
?string #向前查找
Enter确认查找,n浏览下一个查找结果; N浏览上一个查找结果
:set hls #设置查询的结果高亮显示
:noh #关闭当前的高亮结果
:set nu #设置行号显示
替换命令
:s/old/new #将当前行的第一个old替换为new
:s/old/new/g #将当前行所有的old替换为new
:ns/old/new #将第n行第一个old替换为new
:ns/old/new/g #将第n行的所有old替换为new
:m,ns/old/new #将指定的m、n行内的第1个old替换为new
:m,ns/old/new/g #将指定的m、n行内的所有old替换为new
:%s/old/new #将文本中所有行的第1个old替换为new
:%s/old/new/g #将文本中所有的old替换为new
:%s/old/new/gc #依次将old替换为new
:%s/^hello/hola/g #将所有以hello开头的字符串替换为hola
撤销修改、重做与保存命令
u #撤销上一步的操作
U #恢复光标所在行原来的内容(文件打开时的文本状态)
Ctrl+r #将原来撤销的恢复
:q #若文件没有修改,直接退出
:q! #文件已经被修改,放弃修改退出
:wq #文件已经被修改,保存修改并退出
:e! #放弃修改,重新回到文件打开时的状态