走入Linux的世界:编辑器Vim

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

我的博客:yuanManGan

我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记  闲言碎语小记坊 题山采玉 领略算法真谛 走进Linux的世界 进阶数据结构

IDE集成开发环境

Linux下的开发工具是独立的!

写代码 -- 编译器vim

编译代码 -- gcc/g++

调试 -- gdb 、cgbd

构建工具 -- makefile 、make、cmake

git

vim:

vim下有很多模式,我们先来简单的介绍3个模式吧!

三个模式之间的转换:

我们用vim打开文件的时候默认是命令模式,那我们想写入代码就得进入插入模式,我们可以按i进入,插入insert。

这是我们刚进入vim编辑器的样子,我们左下角什么都没有。

当我们按i之后就成了下图: 

注意左下角有INSERT就代表现在是插入模式,就可以随意输入咯。

那我想回到命令模式只需要按ESC这个键就可以了。

那我们想要退出应该怎么退出啊。

我们退出vim编译器,一般需要进入底行模式,输入shift + ;也就是:号就能进入底行模式,

此时按w表示保存,q表示退出。所以我们一般输入wq进行退出编辑器。

三个模式的互相转换如下图:

命令模式:

如果我们想直接到文本的最后,有没有快捷键呢?有的

shift + g 也就是 G 

光标就直接到最后一行了。

那回到第一行呢:

gg 按两次g

那到指定行呢?

n + shift + g

比如输入

20 G

那我想让我的锚点指向这一行的最后呢?

shift + 4

开头呢?

shift + 6

我们在vim编辑器下的移动可以通过键盘上的上下左右键,也可以使用hjkl分别代表

h : 左

j :下

k:上

l :  右

为什么我们会存在这种方式呢?早期的计算机是没有上下左右键的,再加上我们使用hjkl会比那种方法更快。

还要补充一下:

w按照单词位单位向右移动

b按照单词位单位向左移动

那我们怎样进行复制操作呢?

yy进行复制,p进行粘贴。表示Ctrl c v了,注意不要乱按这两个键哦。

我们依旧可以使用

n +yy表示复制多行

n +p 粘贴多行

有了复制粘贴就要有剪切dd

n + dd是一样的道理

我们撤销操作是u ctrl r是撤销撤销操作。

但我们退出vim之后再进来就不能撤销刚刚写过的了。

我们可以进行批量化注释

我们按CTRL V会进入这个模式

在这个模式下

hjkl选择区域

按shift i 进入插入模式

按 // ESC

就完成了

那咋批量化去注释呢?

一样的先 ctrl v,选中区域按d就解决了 

 底行模式:

w!强制保存

q!强制退出

wq!强制保存退出

:/key进行搜索

按n跳下一个,N跳上一个

:!cmd 不退出vim直接对代码进行编译和运行

 :vs 可以分屏

我们在vs模式下 使用CTRL w w 可以让光标在各个文件里面交换。

命令模式下 shift zz可以强制退出vim

shirt + r可以进入替换模式

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

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

相关文章

PyTorch中神经网络的模型构建

要构建自定义模型,需完成两个核心步骤:继承 nn.Module 类;重载 __init__ 方法(初始化)和 forward 方法(前向计算) 神经网络的构造 初始化方法(__init__) def __init__…

QML QtCharts坐标轴系统

QtCharts是Qt框架中强大的数据可视化模块,它提供了丰富的图表类型和灵活的坐标轴系统,能够满足各种数据展示需求。本文将全面介绍QML中QtCharts的坐标轴系统,包括数值坐标轴(ValueAxis)、对数坐标轴(LogValueAxis)、分类坐标轴(CategoryAxis)…

TI 2025全国电赛猜题

本科组可能的题目方向本科组器材更侧重高频信号处理、复杂控制系统、精密测量及多设备协同,可能涉及以下题目:四旋翼飞行器相关任务题目示例:设计 “基于四旋翼的 UV 光控自主导航系统”任务要求:利用四旋翼飞行器(最大…

Python自动化运维实战指南

什么是自动化运维定义与背景自动化运维是指利用工具和脚本自动执行传统上需要人工操作的IT运维任务,包括但不限于服务器配置管理、软件部署、监控告警、日志分析等日常工作。随着互联网业务规模的扩大,传统手工运维方式已无法满足快速部署、规模化管理等…

k8s的csi对接GPFS

在 Kubernetes(k8s)集群中,通过 CSI(Container Storage Interface)对接 GPFS(General Parallel File System,现为 IBM Spectrum Scale)是实现高性能共享存储的重要方案。GPFS 作为并…

HTB赛季8靶场 - era

nmap扫描 └─$ nmap -p- --min-rate 1000 -T4 10.129.137.201 -oA nmapfullscan Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-07-27 21:19 EDT Warning: 10.129.137.201 giving up on port because retransmission cap hit (6). …

Bug猫学习史#1:面向对象

在Java编程中,掌握几个核心概念对深入学习至关重要:类属性建议采用包装类以提升灵活性;建造者模式中this关键字能有效简化对象构建过程;static关键字涉及类的加载机制;接口默认使用public修饰符并支持默认方法实现&…

优测推出HarmonyOS全场景测试服务,解锁分布式场景应用卓越品质!

随着HarmonyOS NEXT“纯血鸿蒙”的全面商用,生态正以前所未有的速度重构终端操作系统格局。对于APP厂商而言,应用测试需要从单一设备思维向场景化服务验证转变。优测云服务平台正式推出 HarmonyOS全场景测试解决方案,针对鸿蒙系统提供功能测试…

二层环路与三层环路:原理、区别与解决方案全解析

网络环路是网络运维中最常见也最具破坏性的问题之一。本文将深入浅出地解析二层环路和三层环路的核心概念,通过对比分析帮助读者全面理解这两种环路的形成机制、危害表现及解决方案。一、环路问题概述 1.1 什么是网络环路 网络环路是指数据包在网络中循环传输无法到…

Python爬虫库性能与选型实战指南:从需求到落地的全链路解析

目录 一、性能基准测试:用数据打破认知误区 1. 静态页面采集:效率与资源的终极对决 2. 动态页面渲染:速度与真实性的博弈 二、场景化选型矩阵:从需求到工具的精准映射 1. 小规模快速原型开发(≤1000页)…

uni-app switch(开关选择器) BUG

uni-app switch(开关选择器) BUGBUG:uni-app中的switch的checked属性并不能根据根据绑定的动态数据进行调整switch开关选择器(BUG)switch开关选择器(BUG) - 我的使用用途switch开关选择器&#…

微服务架构中的资源调度与负载均衡实践

更多云服务器知识,尽在hostol.com在今天这个快速发展的数字化时代,微服务架构已经成为了现代企业系统开发的主流。随着技术的不断进步,企业的业务需求也在不断地变化,传统的单体架构已经无法满足日益复杂的应用需求。微服务架构&a…

Rust Web 全栈开发(十一):WebAssembly 尝鲜

Rust Web 全栈开发(十一):WebAssembly 尝鲜Rust Web 全栈开发(十一):WebAssembly 尝鲜什么是 WebAssembly?安装 wasm-pack 和 cargo-generate使用项目模板构建项目生成网页安装依赖项在 www 中使…

Thymeleaf实战:SpringBoot用户管理系统

Thymeleaf 示例代码下面是完整代码示例,帮助理解 Thymeleaf 语法和后端代码的配合:1. 用户实体类 (User.java)/*** 用户实体类*/ public class User {private Long id; // 用户IDprivate String name; // 用户名private String email; /…

mysql查找数据库表中某几个连续的编号中中断的编号

在MySQL中查找表中连续编号中断的位置,可以通过以下几种方法实现: 基于范围的查询方法 通过自连接查询找出ID序列中的断点,例如查找1-100范围内缺失的ID: SELECT a.id + 1 AS start, MIN(b.id) - 1 AS end FROM

《剑指offer》-数据结构篇-树

题目重建二叉树树的子结构二叉树的镜像从上往下打印二叉树(层序遍历)把二叉树打印成多行按之字形顺序打印二叉树二叉搜索树的第k个结点(中序遍历)二叉搜索树的后序遍历序列(后序遍历)二叉树中和为某一值的路…

系统定时任务扩展开发指南

适用场景当系统内置定时任务类型无法满足业务需求时,开发者可通过本教程快速掌握自定义定时任务的扩展方法。本指南以"定时检测服务"为例,演示完整开发流程。我想添加一个定时任务 ,而这里没有我需要的,我怎么来添加比如我想添加一个定时检测用…

R语言简介(附电子书资料)

概述 R语言是一种专为统计计算和数据分析设计的编程语言,自诞生以来,凭借其强大的统计分析能力和丰富的可视化功能,成为数据科学、统计学、机器学习等领域的重要工具。电子书资料:https://pan.quark.cn/s/23050825f2be 一、核心特…

关于前端的性能优化

性能优化主要涵盖了以下四个方面: (tip:仅代表个人总结,如有不当,还希望看到的大佬多多指示) 减少网络请求:合并文件、使用 CDN、启用缓存。 优化资源加载:代码分割、懒加载、图片压缩。 提升渲染性能:减少重绘回流、防抖节流、使用 Web Worker。 监控和迭代:定期使用工…

用 FFmpeg 把视频输出为图片序列

用 FFmpeg 把视频输出为图片序列 【推荐】输出为PNG图片序列(无损) mkdir "D:\Downloads\Recording" ffmpeg -i "C:\Users\33589\Videos\1.mp4" "D:\Downloads\Recording\Recording_%05d.png" 参数含义-i输入视频路径&am…