vim三种模式
- 命令行模式
- 编辑模式
- 末行模式
进入文件默认就是命令行模式,这个模式按i、a、o可以进入编辑模式,按:
可进入末行模式。编辑模式和末行模式按Esc
均退回命令行模式。
vim常用操作
环境参数配置
切换到当前用户的宿主目录下,比如root 用户就是/root/,文件为.vimrc
命令 |
解析 |
set xxx |
设置环境参数 |
set no xxx |
取消环境参数 |
set all |
可查询 |
set nu |
显示行号 |
set noun |
取消行号 |
set nowarp |
禁止长行自动回绕 |
set autowrite |
设置自动保存 |
set hlsearch |
打开查找高亮 |
set tabstop=4 |
设定 tab 长度为 4 |
syntax on |
自动语法高亮 |
需要什么可以添加到配置文件(配置文件永久生效),如果需要当前文件生效,就在当前文件进行设置(命令模式)。上面列举了一些比较常用的命令,可以去官网查看vim手册
命令合集
下面命令为命令模式的命令,有:
前缀表示末行命令
方向命令
下面命令为命令模式的命令
命令 |
解析 |
k |
等价方向键↑ |
j |
等价方向键↓ |
h |
等价方向键← |
l |
等价方向键→ |
插入命令
命令 |
解析 |
a |
在光标所在字符后插入 |
A |
在光标所在行尾插入 |
i |
在光标所在字符前插入 |
I |
在光标所在行首插入 |
o |
在光标下插入新行 |
O |
在光标上插入新行 |
定位命令
命令 |
解析 |
gg |
到第一行 |
G |
到最后一行 |
nG |
到第n行 |
:n |
到第n行(末行模式下输入数字 回车) |
$ |
(英文输入法下,Shift + 4 键) 移至行尾 |
0 |
移至行首 |
删除命令
命令 |
解析 |
x |
删除光标所在字符 |
nx |
删除光标所在处后n个字符 |
dd |
删除光标所在行,ndd删除n行 |
dG |
删除光标所在行到文件末尾内容 |
D |
删除光标所在处到行尾内容 |
:n1,n2 d |
删除指定范围行(末行模式下输入) |
复制和剪切命令
命令 |
解析 |
yy |
复制当前行 |
nyy |
复制当前以下n行 |
dd |
剪切当前行 |
ndd |
剪切当前以下n行 |
p、P |
粘贴在当前光标所在行下或行上 |
替换和取消命令
命令 |
解析 |
r |
取代光标所在处字符 |
R |
从光标所在处开始替换字符,按ESC结束 |
u |
取消上一步操作 |
Ctrl + r |
取消最近一次撤销,可多次撤销 |
搜索和搜索替换命令
命令 |
解析 |
/string |
搜索指定字符串,搜索时忽略大小写:set ic |
n |
搜索指定字符串的下一个出现位置 |
:%s/old/new/g |
全文替换字符串(将old字符串替换为new字符串)表示全文中把sh字符串替换为SH |
:n1,n2s/old/new/g |在一定范围内替换指定字符串(将old字符串替换为new字符串)
保存和退出命令
命令 |
解析 |
:w |
保存修改 |
:w new_filename |
另存为指定文件 |
:wq |
保存修改并退出 |
ZZ |
shift + ZZ 快捷键,保存修改并退出 |
:q! |
不保存修改并退出 |
:wq! |
保存修改并退出(文件所有者及root可使用,一般用在只读文件) |
其他命令
命令 |
解析 |
vim --version |
查看vim的版本号 |
. |
重复执行上一次执行的vi命令 |
~ |
对光标当前所在的位置的字符进行大小写转换 |
Ctrl + v |
进入 可视模式 |
Shift + (移动键hjkl) |
对矩形选中 |
使用技巧
把一个文件的内容导入当前文件中光标所在位置
语法:r 文件名
在不退出vim的情况下查看时间 !date
将时间写入文件 r!date
定义快捷键
语法:map 快捷键 触发命令
如将当前行注释掉 map ^P I#<ESC>
(^p是快捷键:ctrl + v+ p
I表示跳到行首并进入编辑模式 然后插入# 再按ESC)
定义完成后使用Ctrl + p就可以实现行注释咯
删除注释: map ^B 0x
(^b是快捷键: ctl + v + b
0表示跳到行首,x表示删除当前字符)
连续行注释
n1,n2s/^/#/g ( ^表示行首的意思)
n1,n2s/^/ \ / \ / /g ( ^表示行首的意思 后者本来是\但是要转义所以就成了//)
连续行取消注释
n1,n2s/^#//g ( ^表示行首的意思,所以这样的意思就是删掉行首的#号)
替换
在该文件中输入mymail将会被自动替换为后者。如果想用永久生效就写入配置文件
执行单纯的命令
如果我们想要执行的单纯的是ls就使用 \ls
本章完!