Linux工具之vi/vim

文章目录

vi/vim

简单来说,vi和vim基本上都是所有Linux系统自带的编辑器,但是我们不排除在未来的某些极端条件下,需要利用vi/vim进行代码的编写或修改

其实vi和vim是一家子,他们都是多模式编辑器,而vim是vi的升级版,不仅支持vi的所有指令,还支持了语法高亮等特性,可视化操作甚至可以运行在其他操作系统上

因此我们主要介绍vim的使用

vim的基本概念

我们知道vim是多模式编辑器,他的模式有非常多,对于我们初学者目前只需要掌握其中的三种即可

命令模式(command mode)、插入模式(insert mode)、末行模式(last line mode)

在命令模式下,可以控制光标移动,删除,移动,复制粘贴,或者进入其他两种模式

在插入模式下,才可以对文件内容进行操作,按ESC即可回到命令模式

在末行模式下,做文件的保存或者退出,也可以进行文件替换,查找,列出行号等操作,在命令模式下输入英文冒号即可进入

vim的基本操作

进入vim,一般直接使用vim创建文件即可,例如

bash 复制代码
vim test.c

进入之后是处于命令模式,需要切换到插入模式才可以进行输入文字

从命令模式切换到插入模式有三种方式

  1. 输入i,普通插入模式,从光标处开始输入文字
  2. 输入a,从光标的下一个字符位置开始输入文字
  3. 输入o,从光标的下一行插入新行,从行首开始输入文字

从插入模式按下ESC即可切回命令模式

退出vim及保存文件需要在命令模式下输入冒号进入末行模式,再输入w即可保存,q即可退出,也可以wq一起执行

命令模式命令集

命令 说明
i 进入插入模式,从光标后开始输入
a 进入插入模式,从光标的下一个字符开始输入
o 进入插入模式,从光标的下一行开始输入
G 移动到文章末尾
$ 移动到行尾
^ 移动到行首
w 光标跳到下个单词的开头
e 光标跳到下个单词的结尾
b 返回上个单词的开头
# 光标移动到该行的第#个位置
gg 移动到文本开始
shift+g 移动到文本末端
ctrl+b 向后移动一页
ctrl+f 向前移动一页
ctrl+u 向后移动半页
ctrl+d 向前移动半夜
x 按一次删除光标的一个字符
#x 删除光标位置之后的#个字符,包含光标
X 按一次删除前面一个字符
#X 删除光标之前的#个字符
dd 删除所在行
yw 复制这个单词到缓冲区
#yw 复制#个字符到缓冲区
yy 复制光标所在行到缓冲区
#yy 复制#行
p 粘贴
r 替换所在字符
R 替换所到之处的字符,按下ESC停止
u 撤回
ctrl+r 恢复撤回
cw 更改光标所在的字到字尾处
c#w 改#个字
ctrl+g 列出光标所在行号
#G 将光标移至第#行首

末行模式命令集

命令 说明
set nu 标明行号
# 跳转到第#行
/关键字 寻找关键字,按n跳转到下一个,从前往后找
?关键字 寻找关键字,按n跳转到下一个,从后往前找
w 保存文件
q 退出文件,未保存就退出会报警告
wq 保存并退出

vim的配置

配置文件的位置

在目录/etc/下面,有一个vimrc的文件,是对vim的配置文件,对所有用户有效,在用户主目录下也有(可以创建)个自己的配置文件,

常用配置选项

语法高亮 syntax on

显示行号 set nu

tab缩进空格数 set shiftwidth=4

更多内容可以访问如下开源项目

vim从入门到牛逼

感谢各位的支持,如果你发现文章中有任何不严谨或者需要补充的部分,欢迎在评论区指出

相关推荐
啵啵鱼爱吃小猫咪37 分钟前
Ubuntu 20.04 + ROS Noetic 源码安装 libfranka 0.8.0 和 franka_ros 0.8.0 完整教程
linux·运维·ubuntu
Piko6141 小时前
锐捷 VSU 虚拟化堆叠配置
运维·网络·笔记
ljs6482739512 小时前
Linux运维实操:vi编辑器永久配置静态IP(CentOS系列)
linux·运维·编辑器
dddwjzx2 小时前
嵌入式Linux C应用编程入门——高级I/O
linux·嵌入式
2301_780303902 小时前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析
AOwhisky2 小时前
Python 学习笔记(第三期)——流程控制:条件判断与循环结构
运维·笔记·python·学习·云原生·流程控制·循环
IpdataCloud2 小时前
AI生成的Avalon恶意框架怎么防?用IP离线库识别模块化C2通信
运维·人工智能·网络协议·tcp/ip·ip
极客先躯2 小时前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试
Waay3 小时前
Linux 三个核心环境变量配置文件、作用域、生效方式完整梳理
linux·运维·学习·云原生·容器
星空语3 小时前
音频001_Android+Linux车载/手机音频全链路分层架构图
android·linux·音视频