Linux中vim编辑器的使用

vim常见使用方法

  • vim介绍
  • 命令模式下常用命令用法
  • 底行模式下常见命令用法
  • 注释代码
    • 删除
  • vim细节
  • vim的配置问题

vim介绍

vim是一款多模式的编辑器
所谓多模式就是有几种模式供我们选择使用
创建一个文件叫test.c,用vim打开就是

vim test.c

这样就可以打开test.c进行编程
刚打开时是无法进行输入的,默认进入的是命令模式

命令模式:在命令模式下按“ i ”进入插入模式“ i ”是insert的首字母。在命令模式下按“ shift + ; ”表示冒号进入底行模式
a:光标向后移一次进入插入模式
o:新起一行进入插入模式

插入模式:插入模式就是写代码的模式,这个模式下可以写代码,在插入模式下按Esc退出插入模式进入到命令模式

底行模式:在底行模式下按wq然后回车就是保存并退出,w是写入的意思就是保存,q是quit的意思,就是退出,在模式底行下按Esc退出底行模式进入到命令模式

命令模式下常用命令用法

yy 复制当前行
n + yy:从当前行开始复制,图中就是从当前行开始复制三行
在这里插入图片描述

p复制到光标的下一行
n + p把复制的从当前行的下一行开始,粘贴n次

u:撤销刚才的操作
ctrl + r:对历史的撤销进行撤销

dd:剪切当前行,p的话就粘贴到光标的下一行,不p就相当于删除操作
n + dd:剪切n行

shift + 4:也就是“ $ ”符号,将光标定位到当前行的最结尾
shift + 6:也就是“ ^ ”符号,将光标定位到当前行的最开始
gg:将光标定位到整个文本的第一行的开头
shift + g:也就是“ G ”,将光标定位到整个文本的最后一行的开头
n + shift + g:也就是,将光标定位到整个文本的任意一行(整个文本的第n行)的开头

h j k l:四个字符分别代表 左 下 上 右,h和j和键盘的左和下是一样的相对位置。然后k和j埃的最近,上也和下挨着,k就是上,l也在最右边,就代表右。这样方便记忆。
n + h j k l,向某个方向一点n次

w:按单词右移
b:按单词左移

shift + `:就是Esc下面的波浪号,把当前行的字符进行逐个的大小写转换,按一下,转换一个

x:删除光标处的字符,光标后面没有字符的话就往前删
n + x:执行n次x
shift + x:删除光标前面的字符
n + shift + x:执行n次shift + x

r + 指定字符:把光标处换为指定字符
n + r + 指定字符:从光标处开始计算,把后面n个全部换为指定字符
shift + r:相当于“ R ”进入替换模式,对字符进行替换,按Esc退出

shift + cc:就是大写的CC,保存并退出

底行模式下常见命令用法

w:保存

q:退出

q!:退出不保存

set nu:显示行号

set nonu:不显示行号

/ + 关键字:高亮所有关键字

! + 命令:不退出vim直接执行命令

vs + 文件,进入另一个文件,两个文件一起编写,可以再次vs + 文件,这样就可以打开多个文件
ctrl + ww:进行两个地方光标的切换
同样可以通过命令模式进行两个地方的文本交互,比如复制粘贴
在这里插入图片描述
在这里插入图片描述

注释代码

命令模式下,按ctrl + v左下角就会显示visual block(视图模式),这样就可以整体注释,然后可以选中行,可以按n + shift + g去选中,从光标所在行一直选到第n行,然后按shift + i,然后就可以进行输入,输入两个杠后,按Esc退出就全部注释掉了
在这里插入图片描述

在这里插入图片描述

删除

整体删除代码或注释也是进入视图模式,然后选中要删除的东西,按d就直接删除了

vim细节

1.如果vim创建一个文件,在底行模式下不保存,就不会保存这个文件
在这里插入图片描述
2.如果不小心在vim里按ctrl + z退出去了
在这里插入图片描述
这样是把vim暂停了,变成了一个后端任务,并没有关闭,vim仍在运行

再次vim这个文件就会是这样的
在这里插入图片描述

解决方案:kill掉这个进程
命令:kill -9 + 黄圈位置的数字
在这里插入图片描述
但是我们再次vim打开test.c的时候还是这样的在这里插入图片描述
这是提示说有临时文件,因为我们刚刚kill掉了,但是我们原来可能有数据没有保存,生成了临时文件,我们可以按下面的提示继续编辑,E选项就是继续编辑,但是每次打开都有这个,这就很麻烦,那么可以按下面的选项D进行删除,这样再打开就没有了

我们也可以在目录里面找到形成的临时文件,rm进行删除也可以,我们任何没有保存就强制退出的操作,例如断网,都会形成这种文件,这是Linux的一直保护操作,按照上述方法进行解决
在这里插入图片描述

vim的配置问题

vim只是一个可执行程序,vim在启动前会在自己的主目录下读取一个文件叫做**.vimrc**,是一个隐藏文件,有的话vim就去读取,没有就不读。我们可以创建这个文件。配置vim其实就是在这个隐藏文件里面写入命令。

比如:我们现在没有.vimrc,现在创建这个隐藏文件
在这里插入图片描述
vim打开文件,写入命令,显示行号的命令
在这里插入图片描述
我们再次打开我们的c文件,就显示了行号
在这里插入图片描述

我们可以去网上搜相应的配置,去配置一个个性化的vim,网上也有很多一键配置,可以帮助我们调整vim。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/361698.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

运维SRE-04 磁盘管理体系

磁盘管理体系详解 磁盘管理系统概述 目标 熟练掌握常用磁盘配置(容量,转速,个数)熟练说出来或写出来: raid级别熟练掌握磁盘基础使用:拿到一块硬盘到可以向硬盘写入数据分区,格式化,挂载熟练掌握: 磁盘空间不足 no space left on device 故障,原因,排查,解决. 磁盘基础内容 …

17.Golang channel的基本定义及使用

目录 概述实践无缓冲 channel代码结果 缓冲 channel代码结果 channel的关闭特点代码结果range代码结果 select channel代码结果 结束 概述 此篇文章介绍 channel 的用法 无缓冲 channel缓冲 channelchannel的关闭特点range channelselect channel 每一种,配上完整…

深入浅出AI落地应用分析:AI个人助手Monica

前言:铺天盖地的大模型以及所谓的应用到目前为止实际还是很少有像Monica这样贴合个人工作习惯的产品落地,比如像Chatgpt等这样的产品,绝大多数人不会专门买🪜翻墙出去用,而且大多数场景下素人或小白都不知道该怎么用,但是Monica这款产品就很好的以浏览器的插件的形式始终…

29 python快速上手

Python操作MySQL和实战 1. 事务1.1 MySQL客户端1.2 Python代码 2. 锁2.1 排它锁2.2 共享锁 3. 数据库连接池4. SQL工具类4.1 单例和方法4.2 上下文管理 5.其他总结 目标:掌握事务和锁以及Python操作MySQL的各种开发必备知识。 概要: 事务锁数据库连接池…

【Oracle云】使用 boto3 访问 OCI 对象存储 (AWS S3协议兼容)

在现代云计算环境中,S3(Simple Storage Service)协议已经成为云对象存储的事实标准。它提供了简单、可扩展、高度耐用的存储解决方案,得到了广泛应用。Oracle Cloud Infrastructure(OCI)秉承着开放性和灵活…

摄像头监控系统/视频监控云平台EasyCVR接入单兵设备后如何配置移动规矩

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体控可实现视频监控直播、视频轮播、视频录像…

Java编程练习之类的封装

1.把一个Student类封装起来,模拟一个转校生转入新学校后为其制作学生信息的过程。运行结果如下: package zhtestdemo; import java.util.Scanner; import java.text.DecimalFormat; public class demo { //创建类,类名叫demo; private Stud…

CentOS7中安装ElasticSearch

文章目录 检测是否安装了Elasticsearch安装JDK下载java配置 下载Elasticsearch解压安装Elasticsearch修改配置文件启动Elasticsearch常见问题 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasti…

【Ubuntu 18.04 安装截图软件 flameshot 】

安装命令: sudo apt-get install flameshot 使用命令: flameshot gui 创建快捷键:设备->键盘->>输入名字和快捷键 截完图后保存CtrlS,复制到剪贴板 CtrlC ​​​​​​

Altium Designer的学习

PCB设计流程 1.新建空白工程: 创建一个新的工程 新建四个文件,并且保存: 每次打开文件时,打开以.PrjPcb结尾的文件 2.元件符号的创建: 在绘制图形的时候设置成10mil,为了在原理图中显得不那么大。 在绘制引脚的时候设…

【软考问题】-- 6 - 知识精讲 - 项目成本管理

一、基本问题 项目成本管理(预算内完成) 1:成本管理计划 定义:是项目管理计划的组成部分, 描述将如何规划、 安排和控制项目成本。在计划中一般要规定 计量单位精确度:例如 995.59 元取整为 1000元准确度&…

【Qt】—— Qt Creator界⾯认识

目录 (一)左边栏 (二)代码编辑区 (三)UI设计界⾯ (四)构建区 (一)左边栏 在编辑模式下,左边竖排的两个窗⼝叫做"边栏"。 ①是项⽬…

【TCP】三次握手(建立连接)

前言 在网络通信的世界里,可靠传输协议(TCP)扮演着重要的角色,它保证了数据包能够按顺序、完整地从发送端传送到接收端。TCP协议中有一个至关重要的机制——三次握手。这一过程确保了两个TCP设备在开始数据传输之前建立起一个稳定…

数字孪生产品评测:五款数字孪生产品的优劣对比

作为数据可视化领域的资深用户,我深知数字孪生产品在当今工业4.0时代的重要地位。本文将为大家介绍五款市面上的数字孪生产品,帮助大家了解各产品之间的优缺点,选择适合自己的产品。 一、山海鲸可视化 山海鲸可视化是一款强大而灵活的免费数…

C++(map和set)

目录 前言 正文 1.预备知识 1.1序列式容器 1.2关联式容器 1.3键值对 2.set 2.1概念 ​编辑 2.2set的使用 2.3set总结 2.4multiset 3.map 3.1概念 3.2、map的使用 3.3map中operator[] 3.4map总结 3.5multimap 前言 s et 和 map 是 STL 中的容器之一&a…

matlab自定义函数实现图像小波变换

matlab中提供了小波变换函数lwt和ilwt,可以方便地实现提升小波变换。 我们按照小波变换的定义,粗糙地实现一个针对图像的小波变换,如下: % 使用方法: img imread(lena256.bmp); % 假设lena.png是灰度图像 subplot(2…

单细胞转录组数据分析的10大软件/流程

单细胞数据分析现在已经有上千个软件工具可供使用了,这为用户带来便利的同时也造成了选择困难。就像时间一样,一个表,没问题,但如果有两个表,时间还不一样,该信谁的呢? 正好我们前面一篇文章介绍…

Windows10更新失败 错误 0x80070643、KB5034441的解决方法之二

Windows10更新失败 错误 0x80070643、KB5034441 在知乎Windows10更新失败 错误 0x80070643、KB5034441的原因分析和几个解决方法 - 知乎 参考文章进行操作,更详细信息自己看上面链接。 我电脑的硬盘是mbr格式,而且没有划分恢复分区。 Microsoft Windo…

JS(react)图片压缩+图片上传

上传dome var fileNodeTakeStock: any createRef();<inputref{fileNodeTakeStock}onChange{showPictureTakeStock}style{{ display: "none" }}id"fileInpBtn"type"file"accept"image/*" //限制上传格式multiple{false}capture&qu…

C++继承与多态

一&#xff0c;继承 1&#xff0c;继承定义 继承是C三大特性之一。C有类型的复用&#xff1a;类型模板&#xff0c;函数的复用&#xff1a;函数重载。而继承其本质是一种类的复用&#xff0c;使得程序员可以在原有类特性之上进行扩展来产生新的类&#xff0c;原有的类称为父类…