vi和vim的区别,简单来说它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi所有指令,而且还与一些新的特性在里面,比如语法高亮,可视化操作不仅可以在 终端运行,也可以运行于 mac os上。
vim是有着多种模式的文本编辑器,这里这介绍最常用的三种模式。
Esc键 就可以回到命令模式shift+: 就可以 进入该模式,本质就是输入一个冒号。查看所有 vim 模式 命令,进入vim 在底行模式 输入下面的命令
help vim-modes
vim共用16种模式,分为 6这种基本模式和 6种附加模式



语法:vim 文件名
注意:vim 命令 进入到 vim之后,默认是 处于命令模式的,要切换到插入模式后才能进行输入文字
[命令模式] 切换到 [插入模式]
输入a
输入i
出入o
也就是说输入 a、i、o都可以从命令模式切换到插入模式
[命令模式] 切换到[ 底行模式]
同时按住 shift + :,本质上就是输入冒号,就可以从命令模式切换到底行模式
[插入模式 或 底行模式] 切换到 命令模式
无论是在插入模式还是在底行模式下或者你不知道你在哪个模式,直接无脑按 Esc就可以了
退出vim及其保存文件
在命令模式下输入 : 进入底行模式
共有三个字母选项:w:保存、q:退出、!:强制
:wqwq!qw!
光标的移动:左 h、下j、上k、右l
光标左右定位:shift+^,shift+$,左右定位(直接将光标定位到当前行的字符最左侧和最右侧)`空白字符不算
上下定位:shift+g定位到最后一行、gg 定位到第一行
指定定位:n+shift+g,n是数字表示 定位 到 第几行,比如 8+shift+g 定位到第八行开头
单词定位:w光标定位到下个单词的开头,e光标定位到下个单词的结尾,b光标定位 到上个单词的开头
向后定位:数字+l将光标移动到当前行的当前位置的后n个字符,如果是 6+l就是向后移动 6个字符
翻页:ctrl+f屏幕向后移动一页,ctrl+b屏幕向前移动一页,ctrl+d屏幕向后移动半页,ctrl+u屏幕往前移动半页
x:每按一次,删除光标所在位置的第一个字符[#x]:比如 3x表示删除光标所在位置的后面(包含 自己)的3个字符X:大写X,每按一次删除光标所在位置前面的一个字符(不包括自己)#X:大写X,比如 10X删除光标所在位置的前10个字符(不包括自己)dd:删除光标所在的那一行#dd:从光标所在行开始删#行,,比如4dd就上从当前行往下删4行(包括所在行)yw:将光标所在之处到字尾的字符复制到缓冲区(可理解为从某个单词的光标位置复制这个单词的字母,一般遇到不同类型的字符会停止复制)#yw:复制#个单词到缓冲区(单词与单词的区分可以是单词或者字符或者中文,这可能不严谨)yy:复制光标 所在行到缓冲区#yy:复制光标所在行往后#行,包括当前行p:将缓冲区的字符粘贴到光标所在位置(注意:所有于y相关的复制命令都必须和 p配合才能 完成复制与粘贴功能)dd+p:剪切当前行文字r:替换光标所在字符,比如 r+6就是将光标所在字符替换成 6R:不断替换光标所到之处的字符,知道按下Esc键为止u:立即撤回到上一次操作,类似于windows的Ctrl+zCtrl+r:撤销恢复,恢复到撤销之前的状态shirt + ~:将光标所在处的字符小写替换成大小,大小替换成小写shift + : 进入底行模式
set nu:显示行号

set nonu:取消行号
w:保存、q:退出、!:强制,可以配合使用!+[命令]:不用退出vim执行Linux命令


再ls查询是否有编译成功的代码


执行编译成功的代码


vs 文件名:分屏每个分屏都是一个vim,都可以进行vim多种模式的切换

ctrl + w:分屏时,光标在多屏幕下进行切换多个分屏可以用该命令进行切换,光标在哪就在哪个vim窗口里
在 /etc/下面,有个名为vimrc的文件,是系统中公共的 vim配置文件,对所有用户都有效
而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为 .vimrc

用 vim .vimrc打开文件就可以在里面添加一些vim配置
比如显示行号 set nu
配置了这个之后就不用在底行模式显示行号了
更多配置可自行百度
由于vim的配置非常麻烦,某些配置还需要安装插件。可以使用大佬在 Githup上的vim配置,只需要一条命令就可以使用齐全的vim配置