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这个可执行文件


相关推荐
Tim风声(网络工程师)2 小时前
不同射频对应不同mac地址(查找无线用户连接AP信息)
服务器·网络·tcp/ip·智能路由器·无线ap
ajassi20003 小时前
开源 C++ QT Widget 开发(十五)多媒体--音频播放
linux·c++·qt·开源
JosieBook4 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
文档搬运工4 小时前
Linux MInt启动速度的优化
linux
Broken Arrows4 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
Light605 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
linux·pdf·可观测性·异步队列·plt转pdf·权限治理·进度查询
鳄鱼杆5 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou6 小时前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)6 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
THMAIL6 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融