目录
[1. 列出行号](#1. 列出行号)
1.vim的基本概念
- vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 macos、windows。
- vim具有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。
2.vim基本操作
进入/退出vim
进入vim
vim+文件名进入该文件的编辑界面。
退出vim
esc + : 切换值命令模式,输入想要的指令退出。
|-----|------------------------|
| 选项 | 说明 |
| w | 保存 |
| q | 退出 |
| ! | 强制 |
| wq | 保存并退出 |
| q! | 不保存,强制退出 |
| wq! | 保存并强制退出(最高权限者强制写入只读文件) |
shift + zz保存退出
插入模式
在文件的编辑页面,按i进入插入模式
光标表示当前插入位置
这些是常见的按键进入插入模式
|---|-----------------------------|
| i | 在光标所在字符的前面开始插入 |
| I | 在光标所在行的头部开始插入,若头部有空格则在空格后插入 |
| a | 在光标所在字符的后面开始插入 |
| A | 在光标所在行的末尾开始插入 |
| o | 在光标所在行的下一行开始插入 |
| O | 在光标所在行的上一行开始插入 |
| s | 删除光标所在后面的一个字符,并在此插入 |
| S | 删除光标所在行并开始插入 |
3.命令模式
以下操作都是基于vim命令集:
1.光标的移动
移动光标指令
|--------------|-----------------|
| h | 将光标向左移动(前面可带数字) |
| j | 将光标向下移动(前面可带数字) |
| k | 将光标向上移动(前面可带数字) |
| l | 将光标向右移动(前面可带数字) |
| w | 以单词为单位进行光标后移 |
| e | 光标跳到下个字的字尾 |
| b | 以单词为单位进行光标前移 |
| ^ | 将光标移动到光标所在行的开头 |
| $ | 将光标移动到光标所在行的结尾 |
| gg | 将光标移动到当前文件的首行 |
| shitf+g | 将光标移动到当前文件的尾行 |
| 数字 + shift+g | 将光标移动到指定行 |
| ctrl+b | 屏幕往"后"移动一页 |
| ctrl+f | 屏幕往"前"移动一页 |
| ctrl+u | 屏幕往"后"移动半页 |
| ctrl+d | 屏幕往"前"移动半页 |
2.复制和粘贴
复制
- 复制单行:yy,复制当前光标所在行
- 复制多行:数字 + yy,从光标指定行开始向下复制指定行数。
粘贴
- 粘贴单次:p,从光标当前所处位置的下一行开始粘贴。
- 粘贴多次:数字 + p,将复制的内容粘贴指定次。
3.剪切加删除
- 数字 + dd:剪切/删除指定行、连续的多行
剪切:
- **10dd+p(**剪切10行然后复制)
删除:
剪切完不复制(p)就是删除了。
行内往后局部删除
- x:删除光标后面的一个字符。
- 数字 + x:在一行内,删除从光标处开始往后的 n 个字符。
行内往前局部删除
- X:删除光标前面的一个字符。
- 数字 + X:在一行内,删除光标前的 n 个字符
4.撤销与恢复
撤销
- u:撤销上一步执行的操作,类似于 Windows 的 ctrl + z
恢复
- ctrl + r:取消之前执行的撤销操作,类似于 Windows 的 ctrl + y
5.替换字符
数字 + r + 想替换字符对光标指定的位置,进行一个字符的低缓,可以一次替换多个。
shift + r + 想替换字符进入替换模式,直接进行文本替换
6.批量化注释和批量化去注释
批量化注释
1.进入视图模式
按住ctrl + v
2.区域选择**h、j、k、l、**进行区域选择
数字 + shift + g选中连续的指定行数
shift + g 从光标开始到末尾全部选中
3. 进入插入模式打上注释shift +i进入插入模式并打上注释
- 批量注释
- 按住Esc
批量注释演示
ctrl + v 进入视图模式,然后 数字 + shift + g****选中连续的指定行数。
shift +i 进入插入模式并打上注释。
再按Esc就能批量化注释了
批量化去注释
1.进入视图模式
ctrl + v
2.选择注释范围**h、j、k、l、**进行区域选择
数字 + shift + g选中连续的指定行数
shift + g 从光标开始到末尾全部选中
3.批量化去注释按d
注意事项:注释是两个字符单位,要确保选择去注释的范围 **/ /**选择到。
5.底行模式
之前的退出就是底行模式
|-----|------------------------|
| 选项 | 说明 |
| w | 保存 |
| q | 退出 |
| ! | 强制退出 |
| wq | 保存并退出 |
| q! | 不保存,强制退出 |
| wq! | 保存并强制退出(最高权限者强制写入只读文件) |
1. 列出行号
set nu: 输入「set nu」后,会在文件中的每一行前面列出行号
set nonu:输入「set nu」后,会在文件中的每一行前面列出行号
2.查找字符
- **/**关键字:往后查找第一个匹配的关键字。
- **?**关键字:往前查找第一个匹配的关键字。
3.外部命令
- 可以不退出 vim 在命令行执行基本操作指令。
- 在 vim 界面的底行模式可以使用 ! 指令 的方式调用外部命令,enter回车键返回vim编辑界面。
4.多文件操作
- 在当前文件工作时,vim 不能像 vs 那样直接切换到其他文件进行操作 。
- 此时可以使用 vs 文件名,分屏打开其他文件进行操作。
- 光标在哪个分屏就是在哪个分屏操作。
- ctrl + ww 可以切换分屏光标,进行另一个分屏的操作。
6.替换内容
- s/搜索的内容/指定内容:用指定内容替换 光标所在行第一个 被搜索到的内容。
- s/搜索的内容/指定内容/g:用指定内容替换光标所在行全部 被搜多到的内容。
- %s/搜索的内容/指定内容:用指定内容替换 整个文件每一行第一个 被搜索到的内容。
- %s/搜索的内容/指定内容/g:用指定内容替换 整个文件 被搜索到的内容。
替换多段相同内容
6.异常退出
- 编辑中的文件未保存直接退出就是异常退出。
- 见的最多的异常退出就是在命令模式下不小心 ctrl + z 之后,之后再打开文件就会出现以下情况。
-
(O)pen Read-Only: 打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。
-
(E)dit anyway:**还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存盘的内容。不过很容易出现两个使用者互相改变对方的档案等问题!
-
( R )ecover: 就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!
-
(D)elete it: 你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!
-
(Q)uit: 按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
-
(A)bort: 忽略这个编辑行为。
临时解决
- 按下 q 之后出现以下信息,输入 E 或者 R 就能进入文件,但是之后还是会出现该提示。
永久解决
用rm删除缓存文件
之前异常退出系统给我们缓存了一个隐藏文件,异常提醒时已经告诉我们名字了。
我们将它删除就行了。