编程语言
1016
一、vim的模式
| 模式 | 功能 |
|---|---|
| 命令模式 | 进行查看文件内容, 修改文件, 关键的搜索等操作。 |
| 编辑模式 | 对文件内容进行修改和内容添加 |
| 末行模式 | 执行Linux命令, 保存文件, 进行行的跳转, 窗口分屏等操作 |
具体关系如图

二、命令模式
#以vim方式打开/创建 文件 vim 文件名
1.保存退出
ZZ
2.代码格式化
gg=G
3.光标移动
| 快捷键 | 功能 | 备注 |
|---|---|---|
| h | 光标左移 | <-- |
| j | 光标下移 | ↓ |
| k | 光标上移 | ↑ |
| l | 光标右移 | --> |
| 0 | 光标移动到行首 | / |
| $ | 光标移动到行尾部 | / |
| gg | 光标移动到文件头 | 第一行的开始 |
| G | 光标移动到文件尾部 | 最后一行的开始 |
| nG | 行跳转 | 跳转到第n行 |
| n+回车 | 相对跳转 n 行 | 向下跳转n行 |
4.删除命令
vim中其实没有删除操作,所谓的删除都是剪切
| 快捷键 | 功能 | 备注 |
|---|---|---|
| x | 删除光标后边的字符 | 光标盖住的字符 |
| X | 删除光标前边的字符 | / |
| dw | 删除单词 | 要先把光标移动到单词的第一个字母上再删除,否则单词只能被删除一部分 |
| d0 | 删除光标前的字符串 | 从字符串开头到光标当前位置的字符串被删除了 |
| d$ | 删除光标后的字符串 | 从光标当前位置到字符串尾部的字符串被删除了 |
| dd | 删除光标所在行 | 无 |
| ndd | 删除n行 | 从光标所在行开始删除n行,n对应的是一个整数 |
5.撤销和反撤销
| 快捷键 | 功能 | 备注 |
|---|---|---|
| u | 撤销 | 相当于windows中的 ctrl+z |
| ctrl+r | 反撤销 | 相当于ctrl+y |
6.复制和粘贴
由于vim没有删除只有剪切,所以删除的数据可以用来粘贴
| 快捷键 | 功能 | 备注 |
|---|---|---|
| p | 粘贴到光标所在行的下边 | 小写的 p |
| P | 粘贴到光标所在行的上边 | 大写的 P |
| yy | 复制光标所在行 | / |
| nyy | 从光标所在行向下复制 n 行 | n 是要复制的行数,代表一个整数 |
7.可视模式
可视模式类似于windows中鼠标选择一块区域(进行多选)
v: 进入的字符可视化模式(Characterwise visual mode),文本选择是以字符为单位的。 V :进入的行可视化模式(Linewise visual mode),文本选择是以行为单位的。 ctrl-v: 进入的块可视化模式(Blockwise visual mode),可以选择一个矩形内的文本。
| 快捷键 | 功能 | 备注 |
|---|---|---|
| h | 光标向左移动 | 移动光标用于可视模式下的数据块选择 |
| j | 光标向下移动 | 移动光标用于可视模式下的数据块选择 |
| k | 光标向上移动 | 移动光标用于可视模式下的数据块选择 |
| l | 光标向右移动 | 移动光标用于可视模式下的数据块选择 |
| d | 删除(剪切) | 删除可视模式下选中的数据块 |
| y | 复制 | 复制可视模式下选中的数据块 |
| p | 数据粘贴到光标的后边 | 粘贴在可视模式下复制或剪切的数据块 |
| P | 数据粘贴到光标的前边 | 粘贴在可视模式下复制或剪切的数据块 |
通过可视模式进行代码注释
1.通过 ctrl+v 进入块可视模式 2.移动光标上移(k)或者下移(j),选中多个代码行的开头 3.选择完毕后,按大写的的I键,进入“insert” 模式,输入注释符,例如: // 4.最后按ESC键 同样 Ctrl+v 进入列选择模式,移动光标把要删除的注释符选中,按下d,注释就被删除了
8.替换
命令模式下的替换功能并不强大,常用于单字符的切换
| 快捷键 | 功能 | 备注 |
|---|---|---|
| r | 替换光标后的单个字符 | 无 |
| R | 替换光标后的多个字符 | 按 esc 结束替换 |
9.查找
/查找的关键词 回车 使用n/N切换搜索到的关键词们
| 搜索快捷键 | 关键字遍历 | 描述 | 备注 |
|---|---|---|---|
| / | n | 从当前位置向下 | / |
| N | 从当前位置向上 | / | |
| ? | n | 从当前位置向上 | / |
| N | 从当前位置向下 | / | |
| # | n | 从当前位置向上 | 光标需要先放在被搜索的关键字上,键盘上按 # |
| N | 从当前位置向下 |
10.查看man文档
man 文档, 是Linux中自带的帮助文档, 可查询shell命令或标准API函数或系统自带的配置文件格式的说明等信息。
但是man也是分章节的
| 章节 | 说明 |
|---|---|
| section 1 | Linux提供的所有shell命令 |
| section 2 | 系统函数(由内核提供的) |
| section 3 | 库调函数(程序库中的函数) |
| section 4 | 特殊文件(通常在/dev目录中可以找到) |
| section 5 | 系统配置文件格式和约定,比如:/etc/passwd |
| section 6 | 游戏(如果有的话) |
| section 7 | 杂项(包括宏包和约定) |
| section 8 | 系统管理命令(通常仅针对root用户) |
| section 9 | 内核例程[非标准] |
#查询第一章的shell命令 man 1 cp #查询第二章的系统函数 (如: read, write, open 等) man 2 read # 查询第三章的标准的库函数 (如: fread, fwrite, fopen 等) man 3 fread # 查询第五章的特殊的配置文件说明, 比如: /etc/passwd 或者 /etc/group man 5 passwd
如果不写章节号,从第一章开始搜索查询的关键字,如果查询到了, 直接就结束了 比如当查询 printf 函数时不加章节号,就得不到我们我们想要的结果
当我们在vim的命令模式下使用man 1.找到要查看的函数,将光标放上去 2.输入 章节号 + K ,就可以了
三、编辑模式
如果要切换到编辑模式需要从命令模式通过快捷键来切换
| 快捷键 | 功能 |
|---|---|
| i | 从光标前边开始输入 |
| a | 从光标的后边开始输入 |
| o | 在光标下边创建新行,在新行中输入 |
| s | 删除光标后边的字符,从删除位置开始输入 |
| I | 从当前行行首开始输入 |
| A | 从当前行行尾开始输入 |
| O | 在光标上边创建新行,在新行中输入 |
| S | 删除当前行,从当前行开始输入 |
编辑完成后,按 Esc 就可以回到命令模式
四、末行模式
1.模式切换
#命令模式切换到末行模式 : #末行模式切换到命令模式 1. 按两下 Esc 2. 在末行模式执行一个完整指令后自动回到命令模式
2.保存退出
| 末行模式下输入的命令 | 功能 |
|---|---|
| q | 退出,如果退出时文件没有保存,vim会提示是否要保存 |
| q! | 直接退出,不保存 (强制退出) |
| w | 保存,不退出 (相当于在Windows中按了 Ctrl + S) |
| wq | 保存并退出 |
| x | 保存并退出 |
3.替换
末行模式下的替换功能强大的多
| 末行模式下的替换命令 | 说明 |
|---|---|
| s/被替换的关键字/新的关键字/g | 只对光标所在行进行替换 |
| 行号1, 行号2s/被替换的关键字/新的关键字/g | [行号1, 行号2] 是一个从小到大的范围,对这个范围进行替换 |
| %s/被替换的关键字/新的关键字/g | % 代表对所有行进行替换 |
g的功能是一整行都进行替换
如果不加g,效果是每一行的第一个关键词被替换
4.分屏
| 末行模式命令或者快捷键 | 说明 | 备注 |
|---|---|---|
| sp | 水平分屏,多个窗口垂直排列 | 多个窗口中显示同一个文件里的内容 |
| vsp | 垂直分屏,多个窗口水平排列 | 多个窗口中显示同一个文件里的内容 |
| ctrl+w+w | 光标在打开的屏幕之间切换 | 快捷键操作 (按住 Ctrl 然后按两次 w) |
| qall | 同时退出多个屏幕 | / |
| wqall | 同时保存退出多个屏幕 | / |
| sp 文件名 | 分屏的同时指定打开的文件的名字 | 在新窗口中显示指定的文件的内容 |
| vsp 文件名 | 分屏的同时指定打开的文件的名字 | 在新窗口中显示指定的文件的内容 |
除了在命令模式下分屏, 我们也可以在使用vim打开文件的时候直接分屏, 下边是需要用到的参数: -o: 水平分屏 -O: 垂直分屏
# 水平分屏 vim -o 文件1, 文件2, 文件3 ... # 垂直分屏 vim -O 文件1, 文件2, 文件3 ...
5.行跳转
:行号 #即可跳转到指定行号
6.执行shell命令
#语法格式 :!shell命令 #eg: :!ll #回车即可
广告