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 **进入插入模式并打上注释
4.批量注释
- 按住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删除缓存文件
之前异常退出系统给我们缓存了一个隐藏文件,异常提醒时已经告诉我们名字了。
我们将它删除就行了。
版权归原作者 ₯㎕星空&繁华 所有, 如有侵权,请联系我们删除。