VIM编辑器操作
特点
- 没有菜单,只有命令
- 功能强大
作用
- 建立、编辑、显示文本文件
常用操作
命令模式
- 当我们使用
vi/vim 文件名
时,就会进入到编辑器的默认模式——命令模式
中- 如果文件不存在,就会新建
- 在命令模式中,你在键盘上的每一个按键都会被编辑器当作一个命令指令来看待
- 比如
i
、a
、o
- 比如
常用命令介绍
-
进入插入模式的命令
i
在光标所在字符前插入I
在光标所在行的行首插入a
在光标所在字符后插入A
在光标所在行的行尾插入o
在光标下插入新行O
在光标上插入新行
-
移动光标的命令
gg
光标到第一行G
光标到最后一行nG
光标到第n行$
光标移至行尾0
光标移至行首
-
删除字符
x
删除光标所在处字符nx
删除光标所在处后面的n个字符,包含该字符(注意删除多个字符昂)D
删除光标所在处到行尾的内容
-
删除行
dd
删除光标所在行ndd
删除光标所在行后面的n个行,包含该行(注意删除多行昂)dG
删除光标所在行到文件末尾的内容
-
复制(yank)
yy
复制当前行nyy
复制当前行以下n行(包括当前行)
-
剪切(delete)
dd
剪切当前行ndd
剪切当前行以下n行(包含当前行)
-
粘贴命令(paste)
p
粘贴到当前光标所在行下P
粘贴到当前光标所在行上
-
替换(replace)
r
取代光标所在处字符R
从光标所在处开始替换字符,按ESC
结束
-
撤销操作(undo)
u
取消上一步操作
-
搜索
/string
搜索指定字符串,再回车- 默认是严格区分大小写的,可以在搜索前,进入编辑模式,输入命令
set ic
- 默认是严格区分大小写的,可以在搜索前,进入编辑模式,输入命令
n
搜索指定字符串的下一个出现位置- 搜索替换请见编辑模式
-
保存和退出命令
ZZ
保存修改并退出- 其他命令请见编辑模式
注意
- 任何命令都要在命令模式(按esc从插入模式退出到命令模式)下才能执行
插入模式
退出插入模式
- 按
esc
键即可
编辑模式
编辑模式常用命令
-
行号
:set number
或set nu
设置行号:set nonu
取消行号
-
光标
:n
光标到第n行- 等价于命令模式下
nG
- 等价于命令模式下
-
删除
:m, nd
删除指定范围的行,包含起始和结尾
-
大小写
- 默认是严格区分大小写的,使用
:set ic
可以在搜索时不严格区分大小写 set noic
严格区分大小写
- 默认是严格区分大小写的,使用
-
搜索替换
:%s/old_str/new_str/g
全文替换指定字符串- 这里的
g
是在替换的过程中不询问是否替换,如果用的是字母
c`就会在每次替换的时候询问
- 这里的
:m,ns/old_str/new_str/g
在一定范围内替换指定字符串
-
保存和退出
:w
保存修改- 在编辑过程中就可以一边编辑一边保存
:w new_filename
另存为指定文件:wq
保存修改并退出:q!
不保存修改退出:wq!
保存修改并退出- 只有文件所有者或root用户可以使用
- 用来强行修改只读权限的文件
退出编辑模式
- 编辑模式每一次执行完命令之后都会回退到命令模式
文件内容操作
导入其他文件内容到当前文件
- 编辑模式下
:r 文件路径
在不退出VIM的情况下执行其他命令
- 编辑模式下
:! 命令
- 常用的比如在shell编程中,你想引入一条命令,但是有不知道它额路径,这份时候就可以在不切出VIM的情况下使用该命令
- 编辑模式下
:! which ls
- 编辑模式下
- 常用的比如在shell编程中,你想引入一条命令,但是有不知道它额路径,这份时候就可以在不切出VIM的情况下使用该命令
在当前文件的当前光标所在行中导入命令的执行结果
- 编辑模式下
:r !命令
- 比如在文件中导入当前事件
:r !date
- 比如在文件中导入当前事件
其他操作
自定义快捷键
:map 快捷键 触发命令