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

💓博主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.mzph.cn/news/76504.shtml

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

相关文章

4、Nginx 配置实例-反向代理

文章目录 4、nginx 配置实例-反向代理4.1 反向代理实例一4.1.1 实验代码 4.3 反向代理实例二4.3.1 实验代码 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达;言不信者行不果。 4、nginx 配置实例-反向代理 4.1 反向代理实例一 实现效果:使用 nginx…

窗口函数-分组排序:row_number()、rank() 、dense_rank()、ntile()

窗口函数语法结构: 分析函数() over(partition by 分组列名 order by 排序列名 rows between 开始位置 and 结束位置) 开窗函数和聚合函数区别: 聚合函数会对一组值进行计算并返回一个值,常见的比如sum(),count(),ma…

Python入门学习13(面向对象)

一、类的定义和使用 类的使用语法: 创建类对象的语法: ​​​​​​​ class Student:name None #学生的名字age None #学生的年龄def say_hi(self):print(f"Hi大家好,我是{self.name}")stu Student() stu.name &q…

FFMPEG视频压缩与Python使用方法

一、简介 FFMPEG 是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。 官网:https://ffmpeg.org/ 二、安装 1、Linux: sudo apt install ffmpeg 2、Mac: brew install ffmpeg 3、Windows: 下载文件&#…

基于googlenet网络的动物种类识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ................................................................. % 获取输入层的尺寸 Inp…

Pytorch Advanced(一) Generative Adversarial Networks

生成对抗神经网络GAN,发挥神经网络的想象力,可以说是十分厉害了 参考 1、AI作家 2、将模糊图变清晰(去雨,去雾,去抖动,去马赛克等),这需要AI具有“想象力”,能脑补情节; 3、进行数…

centos 下 Makefile 独立模块编译ko

1、安装编译内核环境包 编译需要用到kernel 源码,centos 下需先安装 kernel-devel 包,要下与自己kernel 对应版本 yum install kernel-devel 2、首先从内核或自己写的模块,发到编译环境中 注:就像我自己拷贝一个 bcache 驱动的目…

从零开始在树莓派上搭建WordPress博客网站并实现公网访问

文章目录 序幕概述1. 安装 PHP2. 安装MySQL数据库3. 安装 Wordpress4. 设置您的 WordPress 数据库设置 MySQL/MariaDB创建 WordPress 数据库 5. WordPress configuration6. 将WordPress站点发布到公网安装相对URL插件修改config.php配置 7. 支持好友链接样式8. 定制主题 序幕 …

时序预测 | MATLAB实现LSSVM最小二乘支持向量机时间序列预测未来

时序预测 | MATLAB实现LSSVM最小二乘支持向量机时间序列预测未来 目录 时序预测 | MATLAB实现LSSVM最小二乘支持向量机时间序列预测未来预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现LSSVM时间序列预测未来(最小二乘支持向量机); 2.运行环境Mat…

LabVIEW更改Tab所选标签的颜色

LabVIEW更改Tab所选标签的颜色 在开发过程中,有时会出现要将不同tab页设置不同颜色的情况。此VI允许编程方式更改前面板选项卡控件上选项卡的颜色。它是突出显示所选选项卡的理想选择 在某些应用程序中,用户希望在按下时突出显示选项卡控件。此VI使用事…

借助ChatGPT使用Pandas实现Excel数据汇总

一、问题的提出 现在有如下一个Excel表: 上述Excel表中8万多条数据,记录的都是三年以来花菜类的销量,现在要求按月汇总实现统计每个月花菜类的销量总和,如果使用Python的话要给出代码。 二、问题的解决 1.首先可以用透视表的方…

idea配置git(gitee)并提交(commit)推送(push)

Intellij Idea VCS | 版本控制 - 知乎 IDEA项目上传到gitee仓库_idea上传代码到gitee_robin19712的博客-CSDN博客 git程序下载国内镜像地址: https://registry.npmmirror.com/binary.html?pathgit-for-windows/v2.42.0.windows.2/ 解压后放到固定路径&#xff1a…

ADW300物联网电表支持MODBUSTCP协议、MQTT协议-安科瑞黄安南

摘要 随着通信技术的应用越来越广泛,具有通信功能的电子产品越来越多,同时也随着Wi-Fi无线覆盖网络区域的形成,如何利用无线网络覆盖广、带宽高、低使用费率的优势组建物联网系统,变成了一个很实际的问题。 安科瑞也紧跟趋势推出…

antv-G6知识图谱安装--使用(实例)--连接线修改成动态,并添加跟随线移动的光圈,设置分支跟踪定位功能

这系列文章主要是完成一个图谱的自定义修改(最近太忙了长篇分段更新自己使用流程) 1. 连接线修改成动态,并添加跟随线移动的光圈 2. 自定义卡片样式和文字内容 3. 自定义伸缩节点的样式,并添加动画样式 3. 自定义弹窗样式 4. 自定…

lvs负载均衡、LVS集群部署

四:LVS集群部署 lvs给nginx做负载均衡项目 218lvs(DR 负载均衡器) yum -y install ipvsadm(安装这个工具来管理lvs) 设置VIP192.168.142.120 创建ipvsadm的文件用来存放lvs的规则 定义策略 ipvsadm -C //清空现有…

自己设计CPU学习之路——基于《Xilinx FPGA应用开发》

1. 一个32组位宽为32的寄存器堆 框图 代码 regfile.h ifndef __FEGFILE_HEADER__define __REGFILE_HEADER__define HIGH 1b1define LOW 1b0define ENABLE_ 1b0define DISABLE_ 1b1define DATA_W 32define DataBus 31:0define DATA_D 32d…

正中优配:月线macd指标参数设置?

随着投资者长期持有股票的越来越受欢迎,月线MACD目标已成为识别趋势和交易信号的重要东西。但是,许多投资者在设置MACD目标参数时仍然感到困惑。本文将从多个视点剖析,为您解答月线MACD目标参数设置的问题。 什么是MACD目标? MAC…

vue中v-for循环数组使用方法中splice删除数组元素(错误:每次都删掉点击的下面的一项)

总结:平常使用v-for的key都是使用index,这里vue官方文档也不推荐,这个时候就出问题了,我们需要key为唯一标识,这里我使用了时间戳(new Date().getTime())处理比较复杂的情况, 本文章…

Spring-Cloud-Openfeign如何做熔断降级?

微服务系统中为了防止服务雪崩问题&#xff0c;服务之间相互调用的时候一般需要开启熔断与降级&#xff0c;下面就来看下feign如何集成hystrix来做熔断与降级。 依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-c…

Full authentication is required to access this resource解决办法

我们在使用postman调接口时候&#xff0c;有的时候需要权限才可以访问&#xff0c;否则可能会报下面这个错误 {"success": false,"message": "Full authentication is required to access this resource","code": 401,"result&q…