【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.rhkb.cn/news/130184.html

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

相关文章

让照片动起来的软件,轻松制作照片动效

随着社交媒体的日益普及,我们对于照片的要求也越来越高。普通的照片已经不能满足我们的需求,我们希望照片更加生动有趣。照片动效便应运而生,它可以让照片动起来,吸引更多的注意力,让照片更加生动有趣。 照片动效制作起…

C盘清理教程

C盘清理教程 首先使用space Sniffer 扫一下c盘,然后看一下到底是哪个文件这么大 第二步,创建软链接。 首先将我们需要移动的文件的当前路径拷贝下来:C:\Users\Tom\Desktop\test-link\abc\ghi.txt 然后假设剪切到D盘下:D:\ghi.…

颜色代码对照表

颜色代码对照表 各颜色代码: 1 白色 #FFFFFF 2 红色 #FF0000 3 绿色 #00FF00 4 蓝色 #0000FF 5 牡丹红 #FF00FF 6 青色 #00FFFF 7 黄色 #FFFF00 8 黑色 #000000 9 海蓝 #70DB93 …

FPGA原理与结构——时钟IP核的使用与测试

一、前言 本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考: FPGA原理与结构——时钟IP核原理学习https://blog.c…

用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Docker使用及本地Yolov5打包教程

1. Docker的安装 注意:官方也提供了直接Pull Yolov5的渠道: docker pull ultralytics/yolov5 详见:https://hub.docker.com/r/ultralytics/yolov5 --------------------------------------------------以下正文------------------------…

SOC 2.0安全运营中心

SOC,安全运营中心,为取得其最佳效果,以及真正最小化网络风险,需要全员就位,让安全成为每个人的责任。 早在几年前,企业就开始创建SOC来集中化威胁与漏洞的监视和响应。第一代SOC的目标,是集中管…

黑马JVM总结(五)

(1)方法区 它是所有java虚拟机 线程共享的区,存储着跟类的结构相关的信息,类的成员变量,方法数据,成员方法,构造器方法,特殊方法(类的构造器) 方法区在虚拟机…

Linux命令200例:write用于向特定用户或特定终端发送信息

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…

如何提取视频中的音频?几个步骤轻松提取

在现今社交媒体的风靡下,许多人都会使用手机录制视频来记录生活中的美好瞬间。有时候,我们也会想要提取视频中的音频,例如将自己的演讲录音分发给听众。本文将会介绍如何在手机上提取视频中的音频以及需要注意的事项。 使用应用程序 首先&am…

如何使用bat脚本启动指定目录下的jar包

士别三日,当刮目相待。——《三国志》 为了将一个java程序封装成一个简单易用的小工具,使用bat脚本启动jar包。 在txt文档中,键入: echo off java -jar %~dp0core\demo.jar 注意: 1、其中“core”是文件夹的名称&am…

更换Eclipse的JDK版本

点击window->Preferences 选择Installed JREs 点击 Add 按钮, 选择Standard VM, 点击 Next。然后选择自己安装的JDK路径

基于改进人工蜂群算法的 K 均值聚类算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

行业追踪,2023-09-11

自动复盘 2023-09-11 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

(高阶)Redis 7 第10讲 单线程 与 多线程 入门篇

面试题 1.Redis 是单线程还是多线程 最早的版本3.x是单线程。 版本4.x,严格意义不是单线程。负责处理客户端请求的线程是单线程,开始加入异步删除。 6.0.x版本后明确使用全新的多线程来解决问题 2.说说IO多路复用3.Redis 为什么快IO多路复用+epoll函…

【2023年11月第四版教材】第12章《质量管理》(第二部分)

第12章《质量管理》(第二部分) 4 规划质量管理4.1 数据收集★★★4.2 数据分析★★★4.3 数据表现★★★4.4 质量管理计划★★★4.5 质量测量指标★★★ (22下35) 4 规划质量管理 组过程输入工具和技术输出计划1.规划质量管理1.项…

学习 [Spring MVC] 的JSR 303和拦截器,提高开发效率

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《推荐】Spring与Mybatis集成整合》 ⛺️ 生活的理想,不断更新自己 ! 1.JSR303 1.1JSR303是什么 JSR 303是Java规范请求(Java Specification Request)…

索引失效有哪些?

在工作中,如果我们想要提高一条语句的查询速度,通常都会想对字段建立索引。 但是索引不是万能的。建立了索引,并不意味着任何查询语句都能走索引扫描。 稍不注意,可能查询语句就会导致索引失效,从而走了全表扫描&…

Python 变量的定义和数据类型的转换

变量 变量的定义 基本语法:变量名 值 变量名是给对象贴一个用于访问的标签,给对象绑定名字的过程也称为赋值,赋值符号 “” 变量名自定义,要满足标识符命名规则。 Python中,不需要事先声明变量名及其类型&#xff…

localStorage是什么?有哪些特点?

localStorage的主要作用是本地存储,它可以将数据按照键值对的方式保存在浏览器中,直到用户或者脚本主动清除数据,否则该数据会一直存在。也就是说,使用了本地存储的数据将被持久化保存。 localStorage与sessionStorage的区别是存…