【Linux】vim的简单使用

news2024/11/14 19:43:32

我们知道在Windows下的VS2019是一个集成开发环境,也就是说,集编辑,编译,调试等功能都放在了一起;但是在Linux下,这些步骤都是分开的,我们这篇博客就来说一说vim这个编辑器,它只有编辑功能
我们先来简单的在vim上写一段C语言代码

我们先touch一个.c文件,vim+文件名打开,我们发现按一些按键不能在里面写入内容,这是因为刚进入时是命令模式,我们需要按i键进入插入模式,这样就可以写代码了,写完之后按Esc退出插入模式,进入命令模式,再按shift+;就可以进入底行模式,这时输入wq再按回车就可以退出来了

上面就是一个简单的一个写一段代码的操作,下面我们来细化的讲解一下

vim的模式我们这里要说的有四种,分别是命令模式,插入模式,底行模式和替换模式,其中前三种比较常见,它们的相互转换的方法我们一定要知道

在这里插入图片描述

这张图就是它们三个相互转换的关系,插入模式和底行模式之间的相互转换必须要经过命令模式

下面说一下,如果vim异常退出,比如vim还在工作时直接关掉Xshell,或者是断网了,这时vim会在当前目录文件下生成一个隐藏文件,这个隐藏文件中就放着上会编辑的内容

在这里插入图片描述

这个就是异常退出后再次登录的画面,下面有很多选项,我们可以恢复后再删掉就行了

下面是在命令模式下的一些的操作,可以说是快捷键,只有在命令模式下才可以用

shift+$ 将光标定位到本行的最右边
shift+^ 将光标定位到本行的最左边
shift+g 将光标定位到本文件最结尾处
gg 将光标定位到本文件最开始处

h 光标向左走
j 光标向下走
k 光标向上走
l 光标向右走

yy 复制当前行
nyy 复制当前及以下n行
p 在下一行粘贴
np 在下一行粘贴n次

u 撤销上一步操作
ctrl+r 对撤销操作进行撤销
dd 删除/剪切当前行
ndd 删除/剪切多行

shift+`=~ 大小写快速转换
r 替换当前光标所在字符
nr 替换多个字符
shift+r 改成替换模式–Esc–>命令模式
(n)x 删除当前n个字符
n+shift+x 向左进行删除

w 使光标按单词在行内向后移动
b 使光标按单词在行内向前移动
shift+# 高亮所有当前光标指向的单词,n是走向下一个

下面是在底行模式中的指令

w 表示写入
q 表示退出
shift+!表示强制执行
以上三个可以互相组合

!+shell命令 可以不退出vim执行某些命令
vs code.c 可以开多窗口
ctrl+ww光标多窗口切换
set nu 设置上行号
set nonu 取消行号

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Focaler-IoU:更聚焦的IoU损失

摘要 边界框回归在目标检测领域中起着至关重要的作用,而目标检测的定位精度在很大程度上取决于边界框回归的损失函数。现有的研究通过利用边界框之间的几何关系来提高回归性能,而忽略了难易样本分布对边界框回归的影响。本文分析了难易样本分布对回归结…

Kotlin基础——高阶函数和内联函数

高阶函数 高阶函数以另一个函数作为参数或者返回值,其可用Lambda或函数引用表示 函数类型 下面将Lambda存储在sum变量中,其是函数类型 val sum { x: Int, y: Int -> x y }完整的函数类型为(para1,prar2…) -> returnValue val a: Int 0 va…

【MBtiles数据索引和服务发布】GeoServer改造Springboot番外系列二

xyz地图服务访问示例:http://192.168.1.240:8081/gmserver/raster/xyz/firstWP:Imagery-raster/{z}/{x}/{y}.jpg 访问示例如下: mbtiles目录结构 根据z,x,y获取对应mbtiles文件路径的工具方法 说明:重点是使用getMb…

堆宝塔

L2-1 堆宝塔 分数 25 作者 陈越 单位 浙江大学 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明…

第六讲_JavaScript原型

JavaScript原型 1. 原型的概念2. 原型继承2.1 原型链 3. class类的原型对象 1. 原型的概念 原型是 JavaScript 对象相互继承特性的机制。 每个函数都有一个 prototype 属性,这个属性指向一个对象,这个对象称为原型对象。每个对象都有一个 [[Prototype]…

在线mockjson

在线mockjson体验地址 在调一个问题的时候,但是问题的数据可能并不能随着想到的场景就变化,譬如说又个数组长度的情况,可能默认的情况下是返回4个元素,但是想要返回为空的时候,如果联系服务给改一下,那么流…

Pyecharts炫酷热力图:参数详解与实战大揭秘

Pyecharts绘制多种炫酷热力图参数说明代码实战 引言 热力图在数据可视化中是一种强大的工具,可以直观地展示数据的分布情况和变化趋势。Pyecharts是一个基于Echarts的Python可视化库,提供了丰富的图表类型,包括热力图。在本文中&#xff0c…

防御保护---防火墙的NAT-easyip

文章目录 目录 文章目录 点击此处查看NAT技术详解 一.NAT分类 二.防火墙配置 一对多NAT配置 多对多NAT配置 练习 点击此处查看NAT技术详解 一.NAT分类 源IP-NAT(源IP与公网之间转换):静态NAT,动态NAT,NAPT;使内网能够访问公网目…

Linux网络编程——网络初识

文章目录 1. 网络协议初识1.1 为什么要有网络协议1.2 协议分层 2. OSI七层模型3. TCP/IP五层(或四层)模型4. 网络传输基本流程5. 以太网通信 1. 网络协议初识 1.1 为什么要有网络协议 早期计算机是独立的,如果要进行数据交互,就…

安装好IntelliJ IDEA点击无反应,如何解决配置文件不一致导致的启动问题

在我们的开发生涯中,遇到IDE工具出现问题是在所难免的。最令人头疼的莫过于,你的IDEA(IntelliJ IDEA)无法启动,而且没有任何错误提示。这篇文章将详细讲解如何解决IntelliJ IDEA 2023.3.3版本启动失败的问题,这个问题可能也适用于…

【已解决】Centos安装不了podman问题(依赖无法安装)

今天安装podman一直安装不了,原因是containernetworking-plugins-1.1.1-1.el7.2.9.x86_64.rpm这个包因为网站的原因下载不了,不管是开启代理还是使用镜像源,都无法解决 最终是手动下载本地后上传至服务器解决,故把文件分享出来避…

【Web前端实操18】粘性定位——即固定顶层内容,可以继续滚动,但是顶层内容固定,不随着一起滚动

粘性定位 1、了解 可以被认为是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。粘性定位是指网页或移动应用程序中的一种特性,即当用户滚动页面时,某个元素能够保持在屏幕上特定位置不动,直到用户滚动到达一定位置或进行特定操作。这个特性可…

【C++】C++入门—— 引用

引用 1 前情提要2 概念剖析3 引用特性4 常引用5 使用场景5.1做参数5.2 做返回值 6 传值 传引用的效率比较7 引用与指针的差异Thanks♪(・ω・)ノ谢谢阅读下一篇文章见 1 前情提要 在C语言中,我们往往会遇见复杂的指针(如…

tcpdump在手机上的使用

首先手机得root才可以,主要分析手机与手机的通信协议 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)https://optool.daxiaamu.com/index.php tcpdump,要安装在/data/local/tmp下要arm6…

vite+vue3+ts项目上线docker 配置反向代理API

这次重点的坑是反向代理。 1。项目中配置代理,为了跨域请求数据 项目根目录中新建vite.config.ts文件 在文件中添加配置代理 注意:其中 /api 和target 的地址后面没有 / 2。在项目根目录中新建Httprequest.ts文件,引入axios,并…

矩阵键盘的使用

在定义局部变量时,一定要给该变量赋初值。在这个程序中,给按键按下的返回值变量 KeyNum 赋值为 20 。 矩阵键盘线行扫描法的学习链接:https://www.bilibili.com/video/BV1dv411z7Gd/?spm_id_from333.999.0.0&vd_sourceb91967c499b23106…

推荐系统|概要_基本概念

文章目录 基本概念曝光点击相关指标点击率点赞率/收藏率/转发率阅读完成率总结北极星指标 实验流程 基本概念 曝光 笔记出现在首页,叫作曝光。 点击 用户从笔记表面进入到相关笔记的详情页,叫作一次点击。 除此之外,用户的喜爱&#xff0c…

Mybatis-Plus扩展

7 MybatisX插件[扩展] 7.1 MybatisX插件介绍 MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。 安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装。 功…

基于Springboot的视频网站系统的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的视频网站系统的设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

Java入门高频考查基础知识8(腾讯18问1.5万字参考答案)

刷题专栏:http://t.csdnimg.cn/gvB6r Java 是一种广泛使用的面向对象编程语言,在软件开发领域有着重要的地位。Java 提供了丰富的库和强大的特性,适用于多种应用场景,包括企业应用、移动应用、嵌入式系统等。 以下是几个面试技巧&…