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从入门到牛逼

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

相关推荐
阿海5746 分钟前
卸载nginx的shell脚本
linux·nginx
feng_blog66887 分钟前
cursor通过ssh连接远程服务器
运维·服务器·ssh
DeeplyMind8 分钟前
使用parted工具扩展QCOW2磁盘大小完整方案
linux·qemu·virtialization
秋刀鱼 ..8 分钟前
第二届光电科学与智能传感国际学术会议(ICOIS 2026)
运维·人工智能·科技·机器学习·制造
蓝天~白云9 分钟前
ESXI虚拟机启动卡住在0%,无法关闭
linux·运维·服务器
明月心95214 分钟前
IP 中 0/24 和 0/16 的区别
linux·服务器·网络·ip
没有名字的鬼20 分钟前
1 Linux 系统简介
linux
福尔摩斯张44 分钟前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp
java_logo1 小时前
Onlyoffice Documentserver Docker 容器化部署指南
运维·人工智能·docker·容器·onlyoffice·milvus·documentserver
hkNaruto1 小时前
【规范】Linux平台C/C++程序版本发布调试规范手册 兼容银河麒麟
linux·c语言·c++