【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行
在正常模式输入:
yy
或n+yy
粘贴内容到当前行或粘贴n次
在正常模式输入:
p
或n+p
撤销上一步的操作
在正常模式输入:
u
撤销上一步的撤销
在正常模式输入:
CTRL + r
删除(剪切)当前行或n行
在正常模式输入:
dd
或n+dd
向后/前剪切n个字符
在正常模式输入:
n+小x
或n+大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基础(五)】Linux中的开发工具(上)---yum和vim
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到开通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 Linux中的开发工具 1. 前言2.…...

C++学习之list的实现
在了解学习list实现之前我们首先了解一下关于迭代器的分类: 按功能分类: 正向迭代器 反向迭代器 const正向迭代器 const反向迭代器 按性质分类: 单向迭代器 只能 例如单链表 双向迭代器 可,也可-- 例如双…...
一种高效且节约内存的聚合数据结构的实现
一种高效且节约内存的聚合数据结构的实现 在特定的场景中,特殊定制数据结构能够得到更加好的性能且更节约内存。 聚合函数GroupArray的问题 GroupArray聚合函数是将分组内容组成一个个数组,例如下面的例子: SELECT groupArray(concat(ABC…...

机器学习(10)---特征选择
文章目录 一、概述二、Filter过滤法2.1 过滤法说明2.2 方差过滤2.3 方差过滤对模型影响 三、相关性过滤3.1 卡方过滤3.2 F检验3.3 互信息法3.4 过滤法总结 四、Embedded嵌入法4.1 嵌入法说明4.2 以随机森林为例的嵌入法 五、Wrapper包装法5.1 包装法说明5.2 以随机森林为例的包…...

Python之数据库(MYSQL)连接
一)数据库SQL语言基础 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database…...

【建站教程】使用阿里云服务器怎么搭建网站?
使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,阿小云来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程&#x…...
【自然语言处理】关系抽取 —— MPDD 讲解
MPDD 论文信息 标题:MPDD: A Multi-Party Dialogue Dataset for Analysis of Emotions and Interpersonal Relationships 作者:Yi-Ting Chen, Hen-Hsen Huang, Hsin-Hsi Chen 期刊:LREC 2020 发布时间与更新时间:2020 主题:自然语言处理、关系抽取、对话场景、情感预测 数…...
深入理解JVM虚拟机第三篇:JVM的指令集架构模型和JVM的生命周期
文章目录 一:JVM的指令集架构模型 1:基于栈式架构的特点...
[小尾巴 UI 组件库] 组件库配置与使用
文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee:https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee:…...
Linux系统中fork()函数的理解
fork() 函数是一个在Unix和类Unix操作系统中常见的系统调用,用于创建一个新的进程,该进程是调用进程(父进程)的副本。fork() 函数的工作原理如下: 1. 当父进程调用 fork() 时,操作系统会创建一个新的进程&a…...

Linux网络编程:网络协议及网络传输的基本流程
目录 一. 计算机网络的发展 二. 网络协议的认识 2.1 对于协议分层的理解 2.2 TCP/IP五层协议模型 2.3 OSI七层模型 三. 网络传输的流程 3.1 同一网段中计算机通信的流程 3.2 不同网段中计算机设备的通信 3.3 对于IP地址和MAC地址的理解 3.4 数据的封装和解包 四. 总结…...

【大数据之Kafka】十、Kafka消费者工作流程
1 Kafka消费方式 (1)pull(拉)模式:消费者从broker中主动拉取数据。(Kafka中使用) 不足:如果Kafka中没有数据,消费者可能会陷入循环,一直返回空数据。 &#…...
如何确保ChatGPT的文本生成对特定行业术语的正确使用?
确保ChatGPT在特定行业术语的正确使用是一个重要而复杂的任务。这涉及到许多方面,包括数据预处理、模型训练、微调、评估和监控。下面我将详细介绍如何确保ChatGPT的文本生成对特定行业术语的正确使用,并探讨这一过程中的关键考虑因素。 ### 1. 数据预处…...

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

LVS + Keepalived群集
文章目录 1. Keepalived工具概述1.1 什么是Keepalived1.2 工作原理1.3 Keepailved实现原理1.4 Keepalived体系主要模块及其作用1.5 keepalived的抢占与非抢占模式 2. 脑裂现象 (拓展)2.1 什么是脑裂2.2 脑裂的产生原因2.3 如何解决脑裂2.4 如何预防脑裂 …...
springboot将jar改成war
一、maven项目 1、修改pom文件 <packaging>war</packaging>2、添加Servlet API依赖,Spring Boot的Starter依赖通常会包含这个依赖,所以你可能已经有了,没有就需要添加 <dependency><groupId>javax.servlet</gr…...

从9.10拼多多笔试第四题产生的01背包感悟
文章目录 题面基本的01背包问题本题变式 本文参考: 9.10拼多多笔试ak_牛客网 (nowcoder.com) 拼多多 秋招 2023.09.10 编程题目与题解 (xiaohongshu.com) 题面 拼多多9.10笔试的最后一题,是一道比较好的01背包变式问题,可以学习其解法加深对…...

搭建自己的OCR服务,第一步:选择合适的开源OCR项目
一、OCR是什么? 光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。 亦即将图像中的文字进行识别,并以文本的形式返回。 二、OCR的基本流程 1…...

【C++】VScode配置C/C++语言环境(简洁易懂版)
目录 一、下载VScode(装好直接跳第五步)二、安装VScode三、VScode设置语言为中文四、VScode切换主题(个人爱好)五、下载C语言编译器(MinGW-W64 GCC)六、配置编译器环境变量七、配置VScode八、使用单独窗口…...

【hive】—原有分区表新增加列(alter table xxx add columns (xxx string) cascade;)
项目场景: 需求:需要在之前上线的分区报表中新增加一列。 实现方案: 1、创建分区测试表并插入测试数据 drop table test_1; create table test_1 (id string, score int, name string ) partitioned by (class string) row format delimit…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...