Linux中vim的基本使用

目录

vim是Linux和Unix环境下最基本的文本编辑器,类似于windows上的记事本

vim和Visual studio相比,vim并不集成,vim只能用来写代码

VS把写代码,编代码,运行,调试等功能集成在一起,所以VS才被成为集成开发环境IDE


vim中的三种模式以及基本操作

vim是多模式的,有最常用的三种模式:命令模式(默认模式),插入模式,底行模式

命令模式(默认模式)

当敲入指令vim xxx(xxx为一个普通文件名)后,就会进入vim的页面

我们刚开始进入vim界面的模式就是命令模式,也叫默认模式

进来后是的这样的:

在命令模式中。我们敲击键盘会发现vim中没有显示我们敲击的内容,是因为在这个模式中,所有的输入都被当作是命令,所以不会显示我们输入的内容

插入模式

如果想要进行文本编辑,就需要输入i,进入插入模式

输入i后,我们可以在下面看到显示INSERT,此时,我们就进入插入模式了,可以输入内容了

从插入模式回到命令模式,需要按键盘上的Esc键,按Esc后,就可以发现下面的INSERT消失,就说明成功地返回到了命令模式

底行模式

那么假如我们编写好了代码,想要退出vim,需要进入底行模式才可以退出

在命令模式下,输入:,进入底行模式

需要注意的是,只能从命令模式进入底行模式,从插入模式下是无法进入到底行模式下的,同样,在底行模式下也无法进入插入模式

下面显示:就说明进入了底行模式

想要退出,只能在底行模式下输入wq
w指的是保存
q指的是退出
wq指的是保存并退出

在底行模式下,单独输入wq都是可以的,表示只保存和只退出

三种模式相互切换图:


命令模式下的命令

光标定位移动相关的命令:

gg,光标定位到最开始行

shift + g也就是G,光标定位到结尾行

n + shift +g光标定位到第n行

shift + $,光标定位到当前行的结尾

shift + ^,光标定位到当前行的开头

b, 光标定位到上一个单词的开头

w,光标定位到下一个单词的开头

e,光标定位到下一个单词的结尾

h j k l,光标 左 下 右 上移动

复制粘贴删除相关

yy,复制当前行内容
nyy,复制从当前行开始n行的内容
p,粘贴到光标所在行的下一行
np,粘贴n行
dd,剪切当前行内容,也可以当作是删除当前行(只要不再重新粘贴就可以)
ndd,剪切n行内容
(n)x,对光标之后的n个字符进行删除

撤销

u,撤销
ctrl + r,取消撤销

大小写转换

shift + ~,大小写转换

替换

(n)r,对光标后的字符进行批量替换

例如:10 r y就是将后面10个字符替换成y

·shift +r`,替换模式,对内容进行替换,在我们输入内容的同时,替换光标后的内容(这也是第4种模式------替换模式)


底行模式下的命令

w,保存
q,退出
wq,保存并退出
w!,强制保存
q!,强制退出
set nu,调出行号
set nonu,去掉行号

前面我们提到的命令,都是在单文件中的操作

linux下也可以进行多文件编写

在底行模式下,输入vx +其他文件名

光标在哪个窗口,就在哪个窗口进行操作

在命令模式下,输入ctrl +w+w进行窗口的切换

在底行模式下,可以不用退出就可以执行命令

比如,我们已经编写好了一段c语言代码在test.c文件中

在底行模式下,执行编译命令

退出vim后,用ls查看,可以看到的确生成了test.out这个可执行文件


相关推荐
Yana.nice31 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月35 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁37 分钟前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey1 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1151 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独2 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3
VekiSon2 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发