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

相关推荐
我还不赖13 小时前
Anthropic skill-creator 深度技术分析文档
后端
树獭叔叔13 小时前
PyTorch 总览:从工程视角重新认识深度学习框架
后端·aigc·openai
试试勇气13 小时前
Linux学习笔记(十七)--线程概念
linux·笔记·学习
LXY_BUAA13 小时前
《嵌入式操作系统》_高级字符设备驱动_20260316
linux·运维·服务器·驱动开发
掘金一周13 小时前
吃龙虾🦞咯!万字拆解OpenClaw的架构与设计 | 掘金一周 3.19
前端·人工智能·后端
逝水年华QAQ13 小时前
猜了一周的匿名模型竟然是小米的:手把手教你接入 MiMo 到 OpenClaw
后端
Java水解13 小时前
Rust异步编程实战:构建高性能网络应用
后端·rust
优美的赫蒂13 小时前
香橙派5plus单独编译内核安装时的报错记录
linux·rk3588·orangepi
勇敢牛牛_13 小时前
【aiway】基于 Rust 开发的 API + AI 网关
开发语言·后端·网关·ai·rust
陈随易14 小时前
AI时代,说点心里话
前端·后端·程序员