一、vi和vim介绍
vi和vim是两款常用的文本编辑器。vi是Unix系统中最早的文本编辑器之一,vim是vi的改进版本。
vi具有简单、高效的特点,可以在终端中使用。它具有多种模式,包括命令模式、插入模式和底行模式。在命令模式下,用户可以执行各种编辑操作,如移动光标、删除字符、复制粘贴等。插入模式下,用户可以输入文本。底行模式下,用户可以执行一些底行命令,如保存文件、退出编辑器等。
vim是vi的改进版本,也是一个强大的文本编辑器。它保留了vi的所有功能,并添加了许多新特性。vim具有更丰富的功能和更友好的用户界面。它支持语法高亮、自动补全、多窗口编辑等功能。vim还可以通过插件扩展其功能,使其更适用于不同的编程语言和开发环境。
vi和vim都是功能强大的文本编辑器,可以满足用户的各种编辑需求。它们在Unix和Linux系统中广泛使用,并受到许多程序员和系统管理员的喜爱。
二、vim的三种模式(重点)
1.三种模式
命令模式:不能对文件直接编辑,只能通过快捷键进行一些操作(如移动光标、复制、粘贴等),打开vim后默认进入命令模式; 末行模式:可在末行输入一些命令对文件进行操作(如搜索、替换、保存、退出、高亮等); 编辑模式:可对文件内容进行编辑;
2.vim的进入和退出
进入:
语法1:vim 文件路径 //直接打开指定文件(光标位于首行或上次关闭文件时光标的所在行)
语法2:vim 数字 文件路径 //打开指定文件并将光标移动到指定行(数字对应的行数)
语法3:vim /关键词 文件路径 //打开指定文件并高亮显示关键词
语法4:vim 文件路径1 文件路径2 文件路径3 //可同时打开多个文件,文件之间可切换操作
退出:
语法::q //键盘输入英文:号进入末行模式,输入字母q再回车
三、vim模式切换(重点)
1.切换到命令模式
用vim指令打开文件时默认为命令模式;
按一下键盘ESC键可从编辑模式切换到命令模式;
按一下或连按两下ESC键或用键盘删除末行模式下的英文符号:可从末行模式切换到命令模式
2.切换到末行模式
命令模式下键盘输入英文符号:可切换到末行模式;
3.切换到编辑模式
命令模式下键盘输入字母i或a(还有其他字母也可以这两个比较常用)可切换到编辑模式以编辑
注意:vim刚打开文件时默认为命令模式,命令模式可切换到末行模式或编辑模式,但末行模式与编辑模式之间不能直接相互切换;
四、命令模式
1.光标移动
语法1:^ //键盘输入符号^,光标移动到光标所在行的行首
语法2: //键盘输入符号,光标移动到光标所在行的行尾
语法3:gg //键盘输入字母gg,光标移动到文件的首行
上图中,当输入一个g时不是正确语法在右下角可以看到输入的内容g,当输入两个g时立刻会执行命令,这里不便演示,只需按语法输入命令即可执行
语法4:G //键盘输入字母G,光标移动到文件的尾行
语法5:ctrl b //键盘ctrl b,向上翻屏(前提是文件内容足够翻屏)
语法6:ctrl f //键盘ctrl f,向下翻屏
语法7:数字G //键盘输入数字 字母G,光标移动到指定行(数字对应的行数)
语法8:数字 键盘方向键上/下 //键盘输入数字 键盘方向键上/下,光标以光标所在行为准向上/下移动指定行(对应的数字)
语法9:数字 键盘方向键左/右 //键盘输入数字 键盘方向键左/右,光标以光标所在位置为准向左/右移动指定个字符(对应的数字)
语法10::数字 //键盘输入英文符号: 数字再回车,光标移动到指定行(属于末行模式)
2.复制与粘贴
语法1:yy //键盘输入字母yy,复制光标所在行
语法2:数字yy //键盘输入数字 字母yy,从光标所在行开始向下复制指定行(数字对应的行数,包括了光标所在行)
语法3:ctrl v //键盘ctrl v进入可视化复制,用键盘的方向键控制复制区域,然后键盘输入字母yy即可完成复制
上图中,进入可视化复制后可用键盘方向键控制复制区域,选中区域后输入yy即可完成复制,右下角的3*6表示当前复制区域的大小,17,4表示光标的当前位置是第17行第4个字符
粘贴语法:p //键盘输入字母p即可在光标处粘贴复制的内容
3.剪切/删除
语法1:dd //键盘输入字母dd,剪切光标所在行,光标所在行的下面行会上移填补剪切行
语法2:数字dd //键盘输入数字 字母dd,从光标所在行起向下剪切指定行(数字对应的行数,包括了光标所在行),后面行会上移填补剪切部分
语法3:D //键盘输入字母D,剪切光标所在行但后面行不会上移填补剪切行,剪切行变空
删除语法:删除即剪切后不复制,删除操作使用剪切语法
4.撤销与恢复
撤销语法::u //键盘输入符号:和字母u再回车(属于末行模式),撤销上一步操作
恢复语法:ctrl r //键盘ctrl r,恢复撤销操作(即取消之前的撤销操作)
五、末行模式
1.保存
语法1::w //键盘输入英文符号: 字母w再回车,保存当前文件
语法2::w 文件路径 //键盘输入英文符号: 字母w 空格 文件路径再回车,另存为指定文件
2.退出
语法1::q //键盘输入英文符号: 字母q再回车,退出当前文件
语法2::wq //键盘输入英文符号: 字母wq再回车,保存当前文件并退出
语法3::q! //键盘输入英文符号: 字母q 英文符号!再回车,不保存对文件的修改并退出
3.调用外部命令
语法::q外部命令 //键盘输入英文符号: 字母q 外部命令再回车,外部命令如 ls 命令等,不退出文件的同时执行外部命令,执行后按任意键可以切换回文件
4.搜索/查找
语法1::/关键词 //键盘输入英文符号: / 关键词再回车,按关键词查找,查找到的内容会被高亮显示
语法2:N/n //键盘输入字母N/n,光标移动到上/下一个查找到的内容(属于命令模式)
语法3::nohl //键盘输入英文符号: 字母nohl再回车,取消查找到的内容的高亮显示,若不取消内容会一直高亮显示
5.替换
语法1::s/搜索的内容/新内容 //用新内容替换光标所在行第一处被搜索到的内容
语法2::s/搜索的内容/新内容/g //用新内容替换光标所在行全部被搜索到的内容
语法3::%s/搜索的内容/新内容 //用新内容替换整个文件每一行第一处被搜索到的内容
语法4::%s/搜索的内容/新内容/g //用新内容替换整个文件全部被搜索到的内容
6.显示行号
语法1::set nu //键盘输入英文符号: 字母set 空格 字母nu再回车,显示文件每行的行号,显示行号是暂时的下次打开该文件不会再显示
语法2::set nonu //键盘输入英文符号: 字母set 空格 字母nonu再回车,取消行号显示
7.切换文件
语法1::files //键盘输入英文符号: 字母files再回车,查看同时打开的所有文件的名称
上图中,%a表示它对应的文件是当前操作的文件,#表示它对应的文件是上一个操作的文件,行数处显示第0行表示从未切换到它对应的文件进行操作
语法2::open 文件名 //键盘输入英文符号: 字母open 空格 文件名再回车,切换到其他打开的文件进行操作
语法3::bn //键盘输入英文符号: 字母bn再回车,切换到下一个打开的文件
语法4::bp //键盘输入英文符号: 字母bn再回车,切换到上一个操作的文件
注意:每执行完一次末行模式下的命令之后,都会自动退回到命令模式,因此每次执行末行模式下的命令都需要先键盘输入英文符号:后再输入命令
六、编辑模式
命令模式下键盘输入以下字母可进入编辑模式进行对应的操作:
i | 在光标所在字符前开始插入 |
---|---|
a | 在光标所在字符前开始插入 |
o | 在光标所在行的下面另起一行开始插入 |
I | 在光标所在行的行首开始插入,若行首有空格则在空格后插入 |
A | 在光标所在行的行尾开始插入 |
O | 在光标所在行的上面另起一行开始插入 |
S | 删除光标所在行并开始插入 |
按照以上不同的方式进入编辑模式后,正常使用键盘进行增删改即可,重点掌握前两种方式,退出编辑模式键盘按ESC键;
七、vim功能模块
1.代码着色
语法1::syntax on //键盘输入英文符号: 字母syntax 空格 on,开启代码着色,默认是开启的
语法2::syntax off //键盘输入英文符号: 字母syntax 空格 off,关闭代码着色(该操作是暂时的)
2.简易计算器
当编辑文件中需要用计算器计算时,不需要退出文件,可以使用vim的简易计算器完成计算;
使用方法:
在编辑模式下键盘ctrl r,然后键盘输入符号=,光标就会移动到末行,键盘输入计算格式后回车,计算结果就会出现在原光标位置处;
八、补充内容
1.vim的配置(重点)
常用配置:
代码语言:javascript复制syntax on/off //开启/关闭代码着色
set nu/nonu //显示/不显示行号
配置分类:
临时配置:在末行模式下输入配置,此配置是暂时的,下次打开文件时不会生效;
个人配置:个人配置文件路径是~/.vimrc,即当前用户家目录下的隐藏文件.vimrc,此配置只对当前用户永久生效,若不存在.vimrc文件可自行创建编辑加入vim配置;
全局配置:全局配置文件路径是/etc/vim/vimrc,不同版本目录路径可能有点差异,此配置对所有用户永久生效,可编辑全局配置文件加入vim配置;
注意:对于同一配置项,当个人配置存在此配置项时遵循个人配置,否则遵循全局配置;
2.异常退出
编辑中的文件未保存直接退出(按终端右上角的叉或断电等),这就是异常退出;异常退出会产生一个隐藏的交换文件(.文件名.swp,编辑中产生的临时文件,可以指令ls -a查看),并且在下一次打开该异常退出的文件时会报错,将交换文件删除即可正常打开;
3.别名机制(非常有趣)
依靠一个别名映射文件(路径时~/.bashrc)来执行自己创建的指令,这就是别名机制;在映射文件中按特定格式加入自己的指令即可执行自己创建的指令;
上图中, vim打开.baserc文件,找到上图内容处可按格式加入自己创建的指令,如最后一行是我加的,即haha指令将等效于clear指令(笑两下就可以清屏了,不过我的失败了,好像是添加的位置不对);
注意:加入自己的指令后需要重启才能生效;
4.退出方式
代码语言:javascript复制语法::x //文件未被修改直接退出,文件被修改过保存并退出
x和:wq的区别:
使用:wq,文件的修改时间一定会改变;
而使用:x,在文件未被修改的情况下,并不会改变文件的修改时间;
建议:使用:x代替:q和:wq,更加简便的同时不会在未修改文件的情况下改变文件的修改时间
写到最后
感谢您的一路陪伴,用代码构建世界,一起探索充满未知且奇妙的魔幻旅程。如果您对Python编程技巧、好玩实用的开源项目、行业新知趣事和各类技术干货等充满兴趣,那么不要错过未来我为大家奉上的精彩内容!点击关注,让您的探索学习之旅更加丰富多彩,我们一同成长,一同前行!