vi编辑器使用

说明:本文介绍vi编辑器使用;

介绍&基础使用

vi编辑器是linux操作系统中最常用的编辑器,使用vi或vim命令启动。vim是vi编辑器的增强版,大多数情况使用vi命令也会打开vim编辑器,为了方便介绍,以下均称vi编辑器。

在介绍vi编辑器的操作之前,首先介绍vi编辑器的三种模式,如下:

说明:

  • 命令模式:敲vi/vim 文件名进入的就是这个模式,在此模式可以浏览文件内容,输入一些命令,不能编辑内容;

  • 插入模式:编辑模式,可对文件内容进行操作;

  • 尾行模式:光标在窗口尾部,可敲一些复杂的命令,和退出vi编辑器的命令;


以一次简单的使用为例,如下:

(输入vi,后面跟文件名,表示用vi编辑器打开该文件,如果当前目录没有该文件,则编辑完保存会在当前目录创建一个新文件)

powershell 复制代码
vi hello.txt

打开该文件

i,进入插入模式,写入"Hello vi";

ESC,进入命令模式,再按:(冒号),进入尾行模式,输入wq,表示保存退出;

敲回车,退出vi编辑器,使用cat命令查看该文件内容,可见内容已写入;

这样一次简单的vi编辑器使用完成

命令

vi编辑器的强大之处在于有丰富的命令,如下:

命令模式

【插入相关】

a:当前光标后面插入

i:当前光标前面插入

A:当前光标行尾插入

I:当前光标行首插入

o:当前光标往下插入一行,光标在行首

O:当前光标往上插入一行,光标在行首

图示如下:


【移动相关】

h:光标左移一位;

j:光标下移一位;

k:光标上移一位;

l:光标右移一位;

图示如下:

使用键盘上的方向键同样有效;


【复制、编辑相关】

yy:复制当前行;

10yy:复制以上10行;

dd:剪切当前行;

10dd:剪切以上10行;

p:粘贴;

10p:粘贴10次;

u:撤销上一次操作


【浏览相关】

ctrl+f:向下翻一页;

ctrl+b:向上翻一页

ctrl+u:向上翻半页

ctrl+d:向下翻半页


【跳转相关】

^:跳转到当前行行首;

$:跳转到当前行行尾;

G:跳转到文件最后一行

gg:跳转到文件首行

100G:跳转到100行


【查找、替换相关】

n:下一个(相对于查询的方向);

N:与n相反方向的下一个;


行尾模式

【跳转相关】

100:跳转到100行


【设置相关】

set number:显示文件行号;

set nu:显示文件行号;

set nonumber:不显示文件行号;

set ic:查找、替换内容不区分大小写;


【查找、替换相关】

/Hello:当前位置向下查找Hello;

?Hello:当前位置向上查找Hello;

s/Hello/nihao:替换当前行第一个Hello字符串为nihao;

s/Hello/nihao/g:替换当前行所有的Hello字符串为nihao;

10,50s/Hello/nihao/g:替换第10~50行内,所有Hello字符串为nihao;

1,$s/Hello/nihao/g:替换当前文件内,所有的Hello字符串为nihao;


其中,s表示替换,最后的g表示global,全局的意思,加上表示每行中有匹配上的字符都替换,不加表示只替换每行中第一个匹配的字符;

如下,将下面的字符串中的l,替换成j;

Hello,vi

  • s/l/j/g:Hejjo,vi(加g,每行匹配的都替换)

  • s/l/j:Hejlo,vi(不加,只替换第一个匹配的)

【退出、保存文件相关】

q:退出,有内容修改会询问;

q!:强制退出,有内容修改会丢失并退出;

w:写入,不退出;

wq:写入,并退出;

wq!:写入,并强制退出;

vi配置文件

可敲下面的命令,打开vi的配置文件,将一些常用的设置写入到配置文件中,如显示行号、查找/替换不区分大小写;

(打开vi编辑器配置文件,注意是在~路径下,如果不是,先cd ~)

powershell 复制代码
vi .vimrc

(写入配置,查看)

其中:

  • set nu:显示文件行号;

  • syntax on:打开语法高亮;

  • set ic:查找、替换时不区分大小写;

总结

本文介绍了关于vi编辑器的使用,及一些常用命令,参考B站UP主:GeekHour 视频

关于vi编辑器的使用,纸上得来终觉浅,还是需要手动去敲命令,才能慢慢掌握。

首次发布

hezhongying.blog.csdn.net/article/det...

相关推荐
AlbertLuo18 分钟前
CodeMirror使用: 编写一个在线编辑HTML、JS、CSS文件,网页的模板页面-初实现
后端
SamDeepThinking19 分钟前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
Oneslide1 小时前
windows 11远程桌面连Ubuntu GNOME 远程登录频繁断开
后端
饼干哥哥1 小时前
ChatGPT会员掉了,代充黑幕藏不住了
人工智能·操作系统·产品
咕白m6251 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
用户805533698032 小时前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
云技纵横2 小时前
@Transactional 里套 REQUIRES_NEW,为什么会把连接池耗尽?
后端·面试
用户805533698032 小时前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
小宇子2B2 小时前
五、内核里的 GS / swapgs,与现代 TSS
操作系统
tcdos2 小时前
不止扫码 — 微信生态深度融合(登录 + 支付 + 消息)
后端·微信小程序