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

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

相关推荐
sun03221 小时前
Jenkins的Pipline中有哪些区块,以及其它知识点整理
运维·jenkins
西阳未落1 小时前
Linux(7)——进程(概念篇)
linux·运维·服务器
苒苒鸭2 小时前
nginx 基于IP和用户的访问
linux
领世达检测V133529092492 小时前
智能门锁为什么需要做欧盟网络安全 EN18031 标准检测认证
运维·服务器·网络
樂5022 小时前
Web 服务、 Nfs 服务器以及 Dns 服务器综合实验
运维·服务器
莱茵不哈哈2 小时前
Docker:容器化技术
运维·docker·容器
luckyext3 小时前
SQL SERVER常用聚合函数整理及示例
运维·服务器·数据库·sql·mysql·sqlserver·mssql
滴水之功3 小时前
C语言数据结构-链式栈
linux·c语言·数据结构
liulilittle3 小时前
Ubuntu 18.04 升级内核到 5.X(< 5.10)
linux·运维·服务器·ubuntu
老攀呀3 小时前
CentOS系统上挂载磁盘
linux·运维·centos