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...

相关推荐
程序猿DD16 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
贵州诚鑫致达科技有限公司18 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
余槐i18 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要82619 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
凤山老林20 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne21 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF21 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用
澜山奕秋1 天前
RHCSA
linux·运维·服务器
pride.li1 天前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
upala1 天前
【仓颉语言入门 · 第二篇 第 6 课】
后端