Linux学习笔记(三)------Vim编辑器
8、Vim编辑器
8.1 简介
-
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中广泛被使用。尤其是Linux中,必须学会Vim
-
Vim可以通过一些插件实现和IDE一样的功能
-
Vim是程序开发者一项很好用的工具,可用于查看内容,编辑内容,保存内容
-
所有Unix Like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在
-
Vim就是程序开发工具而不是文字处理软件
-
Vim键盘图
8.2 三种使用模式
- vi/Vim分为三种使用模式:
命令模式(Command mode)
、输入模式(Insert mode)
和底线命令模式(Last line mode)
8.2.1 如何进入Vim
- 新建一个文件
vim zstudy.txt
,如果文件存在,则修改文件,文件不存在新建文件
8.2.2 命令模式
- 用户启动vi/Vim,就进入了命令模式
-
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。例如:按下
i
,并不会输入字符,而被当作操作了i命令
-
常用命令:
i:切换到输入模式,可以输入字符
x:删除当前光标所在处的字符
::切换到底线命令模式,可以在最下面一行输入命令。如果在编辑模式,需要先退出编辑模式,Esc退出
- 命令模式只有一些最基本的命令,需要依靠底线命令模式输入更多命令
8.2.3 输入模式
- 按
i
进入输入模式,可以编辑文本
- 在输入模式下,可以用以下按键
字符按键以及Shift组合:输入字符
Enter:换行
Backspace:删除光标前一个字符
Delete:删除光标后一个字符
左右方向键:在文本中移动光标
上下方向键:商家翻页
Home/End:移动光标到行首/行尾
Insert:切换光标为输入/替换模式,光标变成竖线/下划线
Esc:退出输入模式,切换到命令模式
8.2.4 底线命令模式
- 在命令模式下按
:
进入底线命令模式。光标移动到最低端,可以输入底线命令
- 底线命令模式可以输入单个或多个字符的命令,可使用非常多命令
- 常见基本命令:
#完成操作后,通常输入命令wq【在底线命令模式中】,保存文件并退出Vim
q:退出程序
w:保存文件
Ese:退出底线命令模式
8.2.5 小结
- 完成流程:
- 新建或编辑文件,按
i
进如编辑模式,编写内容 - 编写完成后,按
Esc
退出编辑模式 - 按
:
进入底线命令模式 wq
保存文件并退出
- 新建或编辑文件,按
- Vim工作图示
8.3 Vim按键说明
- 除了上述常用按键,Vim还有非常多按键可以使用
8.3.1 第一部分:命令模式
-
一般模式可用的光标移动、复制粘贴、搜索替换等
-
移动光标的方法
按键 | 含义 |
---|---|
k 或 上方向键 | 光标向上移动一个字符 |
j 或 下方向键 | 光标向下移动一个字符 |
h 或 左方向键 | 光标向左移动一个字符 |
i 或 右方向键 | 光标向右移动一个字符 |
ctrl + f | 屏幕向下移动一页 |
ctrl + b | 屏幕向上移动一页 |
ctrl + d | 屏幕向下移动半页 |
ctrl + u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
数字+空格 | 快捷切换光标,光标向右移动N个字符 |
0 或 功能键Home | 移动到这一行的最前面字符处 |
$ 或 功能键End | 移动到这一行的最后面字符处 |
H | 光标移动到这个屏幕最上方那行的第一个字符 |
M | 光标移动到这个屏幕中间那行的第一个字符 |
L | 光标移动到这个屏幕最下方那行的第一个字符 |
G | 移动到这个文件的最后一行 |
数字+G | 移动到这个文件的第N行 |
gg | 移动到这个文件的第一行 |
数字+Enter | 光标向下移动N行 |
- 搜索替换
按键 | 含义 |
---|---|
/word | 光标之下寻找一个名为word的字符串 |
?word | 光标之上寻找一个名为word的字符串 |
n | 重复前一个搜索动作,寻找下一个word字符串 |
N | 重复前一个搜索动作,寻找上一个word字符串 |
- 删除、复制与粘贴
按键 | 含义 |
---|---|
x,X | x向后删除一个字符(Delete),X向前删除一个字符(Backspace) |
数字+x | 连续向后删除N个字符 |
dd | 删除游标所在的一整行 |
数字+dd | 删除游标所在向下N行 |
d1G | 删除游标所在到第一行的所有数据 |
dG | 删除游标所在到最后一行的所有数据 |
d$ | 删除游标所在位置到本行最后一个字符 |
d0 | 删除游标所在位置到本行第一个字符 |
yy | 复制游标所在的一行 |
数字+yy | 复制游标所在向下n行 |
y1G | 复制游标所在到第一行所有数据 |
yG | 复制游标所在到最后一行所有数据 |
y0 | 复制游标所在位置到本行第一个字符 |
y$ | 复制游标所在位置到本行最后一个字符 |
p,P | p:将已复制数据粘贴在游标下一行。P:将将已复制数据粘贴在游标上一行 |
J | 将光标所在行与下一行数据结合成同一行 |
c | 重复删除多个数据,例如:10cj,向下删除10行 |
u | 复原上一个动作 |
Ctrl + r | 重做上一个动作 |
8.3.2 第二部分:输入模式
按键 | 含义 |
---|---|
i,I | i:从目前光标处输入。I:从目前所在行第一个非空格符处输入 |
a,A | a:从目前光标所在下一个字符处开始输入。A:从目前光标所在行最后一个字符处开始输入 |
o,O | o:从目前光标所在的下一行,输入新的一行。O:从目前光标所在的上一行,输入新的一行 |
r,R | r:取代光标所在的那个字符一次。R:一直取代光标所在文字,直到按下Esc |
Esc | 退出输入模式,回到命令模式 |
8.3.3 第三部分:底层命令模式
按键 | 含义 |
---|---|
:w | 将编辑的数据写入硬盘档案中,即保存文件 |
:w! | 文件属性只读时,强制写入文件 |
:q | 退出Vim |
:q! | 强制退出Vim,不保存文件 |
! | 一般代表强制的意思 |
:wq | 保存并退出 |
ZZ | 若文件无改动,不保存退出;文件改动,保存退出 |
:w + 文件名 | 将编辑的数据存储成新文件 |
:r + 文件名 | 在编辑数据中,读入其他文件的数据,内容加到当前光标后 |
:n1,n2 w + 文件名 | 将从n1到n2的内容,存到新文件 |
:! command | 退出Vim命令行模式下执行command,显示结果。command可替换 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |