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
:退出、!
:强制
:w
q
wq!
q
w!
光标的移动:左 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配置