【linux基础(五)】Linux中的开发工具(上)---yum和vim

news2025/1/11 7:11:10

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:Linux从入门到开通⏪

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学更多操作系统知识
  🔝🔝


在这里插入图片描述

Linux中的开发工具

  • 1. 前言
  • 2. Linux软件包管理器:yum
  • 3. linux上安装和卸载软件包
  • 4. Linux中的编辑器:vim
  • 5. vim下的底行模式详解
  • 6. vim下的正常模式详解(上)
  • 7. vim下的正常模式详解(下)
  • 8. vim下的替换模式
  • 9. vim下的视图模式
  • 10. vim下的多线程操作
  • 11. 总结以及拓展

1. 前言

理解了Linux基本指令和权限之后
终于开始了与代码相关的工具的使用
想必各位早已听说过vim的大名,这篇文章
将带你深入浅出vim的各种使用方法

本章重点:

本篇文章重点介绍vim文本工具的使用
以及vim的五种模式,并且带大家熟悉
Linux下的下载和卸载软件的指令:yum


2. Linux软件包管理器:yum

不要觉得yum有多神奇多深奥
yum其实就是一个软件,也可以叫商店
和你手机上的应用商店或app store一样
yum的功能就是搜索并下载需要的软件包

注:使用yum必须联网!

查看一共有哪些软件包

使用指令: yum list

由于Linux下的软件包十分多
所以可以使用以下指令来搜索关键字

使用指令: yum list | grep 关键字

比如我输入关键字lrzsz:

在这里插入图片描述


3. linux上安装和卸载软件包

使用指令: yum install 想安装的软件包名

使用这条指令后,输入y确定下载
查看到complete就说明下载完成了!

注意事项:

yum下载时往往会向系统目录写入内容
一般需要sudo或切换到root账号才能下载
yum在安装一共软件的过程中再安装其他
软件,此时yum会报错!

当你不知道你想要下载的软件叫什么名字时
可以无脑百度,百度上还有许多好玩的软件包


使用指令: yum remove 想要卸载的软件

这条命令和下载一样,最好使用sudo
或切换到root账号来操作


4. Linux中的编辑器:vim

vim可以理解为文本编辑器
就像Windows中的写字板一样
vim有大概12种模式,但是常用的有五种
本篇文章只讲解这五种模式

首先我们先创建一个.c文件来写C语言
然后vim此文件进入到vim编辑界面

在这里插入图片描述

vim进入文本编辑后默认是正常模式
正常模式无法输入内容,此时介绍第二种模式
输入模式

正常模式切换到输入模式可以按:a i o
三个键,a键默认定位至你光标的下一个位置
o键默认定位至你光标的下一列开头
然而i键默认定位至你的光标处

此时写一段简单的代码:

在这里插入图片描述

此时想要退出并保存此代码,需要第三个模式:
底行模式

底行模式不能从输入模式跳转
必须从正常模式跳转到底行模式
所以我们要先从输入模式跳转到
正常模式才能再跳转到底行模式

以下流程图帮你理解:

在这里插入图片描述

再来捋一下流程:首先进入文本编辑界面
时是正常模式,想要输入代码先按:a,i,o
切换到输入模式,输完代码后按ESC键
退出到正常模式,再按shift+;跳转到
底行模式进行保存


在这里插入图片描述


5. vim下的底行模式详解

切换到底行模式后,界面左下角有一冒号:

此时就进入到了底行模式,在写代码时
既没有自动换行和括号匹配,也没有行号
非常的不方便,这一点后面会一一解决

设置行号

在底行模式输入: set nu

取消行号

在底行模式输入: set nonu

保存并退出

在底行模式输入: wq

  • w:保存当前文件
  • w!:强制保存
  • q:退出
  • q!:强制退出
  • wq!:强制保存并退出

查找字符

在底行模式输入: /关键字

此关键字会语法高亮出来
若这个关键字不是你想找的内个
可以按n键跳到下一个关键字位置


除此之外,底行模式还有你意想不到的用处
它可以在不退出vim的情况下
输入并执行指令,并且在当前画面显示出来

比如输入:man printf
可以在底行模式查阅字典


6. vim下的正常模式详解(上)

正常模式的所有操作都是在
高效移动光标
请注意,将你的Linux放在旁边
一边看指令一般实践!

定位至代码的第一行

在正常模式下输入: gg

定位至代码的最后一行

在正常模式下输入: shift+g

定位至代码的任意一行

在正常模式下输入: n+shift+g

定位至特点一行的开始

在正常模式下输入: shift+6(^)

定位至特点一行的结尾

在正常模式下输入: shift+4($)

光标的上下左右移动

  • h键 : 左移
  • j键 : 下移
  • k键 : 上移
  • l键 : 右移

现在的键盘将hjkl键和上下左右
分离开来了,但是vim诞生时期较早
那时的键盘没有上下左右键
建议以后使用hjkl移动光标!

在这里插入图片描述

注:使用w和b可以一次性跳过/回退一个单词
若遇见的字符不是单词,则一格一格的跳


7. vim下的正常模式详解(下)

现在我们可以高效的移动光标了
那移动光标是为了啥?当然是为了执行
复制粘贴剪贴删除等操作!

复制当前行或n行

在正常模式输入: yyn+yy

粘贴内容到当前行或粘贴n次

在正常模式输入: pn+p

撤销上一步的操作

在正常模式输入: u

撤销上一步的撤销

在正常模式输入: CTRL + r

删除(剪切)当前行或n行

在正常模式输入: ddn+dd

向后/前剪切n个字符

在正常模式输入: n+小xn+大x

大小写互相转换

在正常模式输入: shift + ` (~)
不断向后转换,大写变小写,小写变大写

你可能会问,这些操作我可以在输入模式
下复制粘贴输入删除等等都可以完成
为什么还有学正常模式下的指令??

因为你这样不够优雅(bushi)
这是因为在熟悉了各个操作后,效率
会大大提升,甚至比在图形化界面还方便


8. vim下的替换模式

这个模式也是我们常用的模式之一
有时候,我们不想删除代码也不想
添加代码,只想在原先的代码上修改
比如将字符x修改为r,我们要先进入
插入模式再删除掉x再输入r,非常的不优雅

转换到替换模式

在正常模式输入: shift+r

在此模式下,所有的输入都会被当作替换!

在这里插入图片描述


9. vim下的视图模式

我们在用vs写代码时想要注释掉一块代码
非常任意,只需要选中所有代码并点击右上角
的一个键即可,但在Linux中,没有可视化界面
所以我们要依赖视图模式来帮助我们注释

切换为视图模式

在正常模式输入: CTRL +v

在左下角显示visual就代表进入了视图模式
先看以下视频来了解怎样注释:

可以总结为,用j,k选中要注释的行
选好后按shift+i进入插入模式
再输入//后按ESC退出,此时代码就被注释掉了

取消注释

进入视图模式,使用hjkl选中要取消注释
的区域,注意这里要选中前两列,否则只会
删除//的第一个/,选好后输入d,即可删除

在这里插入图片描述


10. vim下的多线程操作

vim文本编辑器可以同时打开多个文件
在vim的底行模式下输入:vs 想要打开的文件名
此时就可以打开另外一个文件

在这里插入图片描述

虽然说有多个文件,但是光标只有一个!
光标在哪个文件,现在就在编辑哪个文件

切换文件

使用指令: CRTL + ww

可以切换文件,进行不同的操作
可以在A文件复制内容并且拷贝到B文件


11. 总结以及拓展

Linux下的开发工具的使用主要是
在教大家怎样高效的Linux下进行编程
vim的多种模式大家要一一熟悉,不要依赖
输入模式修改所有代码,一个合格的程序员
vim必须玩的非常6!

本篇文章干货很多,需要下来慢慢记忆

指令大览

yum list
yum list | grep 关键字
yum install ...
yum remove ...
vim 文件名.c
a,i,o进入输入模式
shift + ; 进入底行模式
CTRL + v 进入视图模式
shift + r 进入替换模式
CTRL + ww 切换文件
yy,dd,p,u等指令

vim配置的拓展

可以发现,虽然现在的vim可以写代码
但是写起来非常别扭,因为它没有自动换行
也没有缩进和括号补齐,所以还不是一个
合格的C/C++代码编辑器,我给大家推荐一个
网址,里面有vim配置的全套下载!

网址链接: vimforcpp

在确保你有curl指令的前提下,输入这行代码:
在这里插入图片描述

这时,所有常用的vim配置就下载好了
现在再打开你的.c文件写写代码
会发现现在和vs上写代码基本上是一样的了!


🔎 下期预告:Linux开发工具(下) 🔍

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

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

相关文章

CMD 命令和 ENTRYPOINT 命令的区别

目录 CMD 命令CMD-shell 形式1. 创建 Dockerfile12. 构建和运行新镜像3. 覆盖 CMD4. 添加命令选项 CMD-exec形式1. 创建Dockerfile2、构建和运行新镜像2.覆盖 CMD和添加命令选项 ENTRYPOINT 命令ENTRYPOINT-shell1. 创建Dockerfile3、构建和运行新镜像2. 覆盖 ENTRYPOINT 和 添…

华为云云耀云服务器L实例评测|了解配置和管理L型云服务器

华为云云耀云服务器L实例配置和管理教程 华为云云耀云服务器L实例的介绍概述特点优势与弹性云服务器(ECS)的对比 注册和创建L型云服务器注册华为云账号创建L型云服务器实例配置实例参数配置其他参数尝试登录 远程登录 L实例查看公网ip通过本地shell远程连…

QT Pyside2 Designer 的基本使用

文章目录 前言PySide2PySide2 Designer 一、安装PySide2、PyQt5二、使用designer.exe2.1 工具的大致介绍2.2 创建一个新的UI2.3 UI文件另存为/保存(CtrlS)2.4 使用python操作UI文件 总结 前言 PySide2 QT PySide2 是一个用于 Python 编程语言的开源框架,它提供了与…

【建站教程】使用阿里云服务器怎么搭建网站?

使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,阿小云来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程&#x…

(10)(10.9) 术语表(一)

文章目录 前言 1 2.4Ghz 2 AGL 3 AHRS 4 APM 5 AMA 6 Arduino 7 APM (AutoPilot Mega) 8 ATC 9 Copter 10 Plane 11 Rover 12 BEC 13 Bootloader 14 COA 15 DCM 16 Eagle file 17 ESC 18 Firmware 19 FPV 20 FTDI 前言 !Note 术语表未编入索…

C++零碎记录(十二)

22. 菱形继承 22.1 菱形继承简介 ① 菱形继承概念: 1. 两个派生类继承同一个基类 2. 又有某个类同时继承两个派生类 3. 这种继承被称为菱形继承 ② 羊继承了动物的数据,驼同样继承了动物的数据,当草泥马使用数据是,就会产生二义…

重构:在新底座之上让应用重生

应用重构正在开启一条云原生时代的新赛道。 数字化发展到今天,企业面临的挑战不仅来自技术层面,更来自认知层面。新架构、新应用正在重新定义数字生产力,重塑商业模式与市场核心竞争力。对金融行业来说,也是如此,一场…

计算机网络第六章——应用层(上)

人生若只如初见,何事秋风悲画扇 文章目录 基于服务的使用以及服务的提供而诞生的两个应用模型, 传输层提供一种端到端的服务,但是不同的网络应用的应用进程之间还需要有一些不同的通信规则,因此在传输层之上建立了一个应用层&am…

信息化管理工程验收评测规范

一、信息工程验收程序: 1.信息化建设项目验收分为初步验收和竣工验收两个阶段。验收由建设单位自行对照招标文件、投标文件和合同执行,并提交初验报告;企业与第三方联系实施验收。 2.工程试运行后30个工作日内,项目建设单位应将…

[计算机入门] 设置日期和时间

3.8 设置日期和时间 在任务栏的最右边是可以看到当前的日期和时间的。当然,如果这里的显示不对,也是可以进行设置的。 1、在任务栏的日期和时间位置,右键鼠标,在弹出的菜单中,点击调整日期/时间。 2、一般情况下&am…

easypoi和poi版本兼容问题记录

最近在开发导出word的功能,遇到下面的问题 提示xml报错的问题,我一度以为是项目换了java11造成的。经过询问朋友,得知有可能是版本冲突造成的,就猛然想起来,我的项目里面还引入了poi这个包。 于是我吧poi的版本降低到了…

【算法训练-数组 五】【二分查找】:旋转数组的最小数字、旋转数组的指定数字

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【数组的二分查找】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为…

C#,《小白学程序》第二十一课:大数(BigInteger)的四则运算之二,减法

1 文本格式 using System; using System.Linq; using System.Text; using System.Collections.Generic; /// <summary> /// 大数的&#xff08;加减乘除&#xff09;四则运算、阶乘运算 /// 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法 /// </summary> p…

GO语言网络编程(并发编程)Goroutine池

GO语言网络编程&#xff08;并发编程&#xff09;Goroutine池 1. Goroutine池 1.1.1. worker pool&#xff08;goroutine池&#xff09; 本质上是生产者消费者模型可以有效控制goroutine数量&#xff0c;防止暴涨需求&#xff1a; 计算一个数字的各个位数之和&#xff0c;例…

2.5 循环结构语句

在程序设计中&#xff0c;有时需要反复执行一段相同的代码&#xff0c;这时就需要使用循环结构来实现&#xff0c;Java语言提供了while循环、do-while循环、for循环。 一般情况下&#xff0c;一个循环结构包含四部分内容&#xff1a; 初始化部分&#xff0c;设置循环开始时变量…

正交试验设计法

正交实验设计 一、什么是正交试验设计法&#xff1f; 是一种成对测试交互的系统的统计方法。它提供了一种能对所有变量对的组合进行典型覆盖&#xff08;均匀分布&#xff09;的方法。 可以从大量的试验点中挑出适量的、有代表性的点&#xff0c;利用“正交表”&#xff0c;…

Rsync远程同步+inotify监控

一、rsync同步简介 一款快速增量备份工具 rsync&#xff08;Remote Sync&#xff0c;远程同步&#xff09; 是一个开源的快速备份工具&#xff0c;可支持本地复制&#xff0c;或者与其他SSH,rsync主机同步。 cp&#xff1a;将原文件完整的复制到指定的路径下&#xff0c;而且…

Vector底层原理——面试之我答

Vector概述 vector是STL中最常用的容器&#xff0c;vector主要功能是作动态数组来弥补传统数组的缺点&#xff0c;如&#xff1a;不灵活&#xff0c;不方便插入等等。 Vector支持随机访问&#xff0c;因此访问某一个元素的时间复杂度是O(1)。 vector中存储着许多易用的函数方法…

自动化测试入门知识 —— 数据驱动测试

一、什么是数据驱动测试&#xff1f; 数据驱动测试是一种测试方法&#xff0c;它的核心思想是通过不同的测试数据来验证同一个测试逻辑。通常情况下&#xff0c;测试用例中的输入数据和预期结果会被提取出来&#xff0c;以便可以通过不同的测试数据进行重复执行。 数据驱动测…

spacy 中文语义分析下载安装使用

概念 spaCy 下载 安装spacy pip install -U spacy -i https://pypi.tuna.tsinghua.edu.cn/simple 安装模型 https://github.com/explosion/spacy-models/releases 找到对应的模型&#xff0c;下载&#xff0c;如下图 安装 下载是gz&#xff0c;下载后安装 pip instal…