Ubuntu中文本编辑器和编译器

news2024/9/9 5:09:38

 

你好,这里是争做图书馆扫地僧的小白。

个人主页:争做图书馆扫地僧的小白_-CSDN博客

目标:希望通过学习技术,期待着改变世界。

目录

前言

一、vim编辑器

(一)打开vim编辑器

(二)vim编辑器的三种模式

        1.命令行模式

        2.插入模式

        3.底行模式

(三)常用命令 

二、gcc编译器

(一)gcc编译器的使用

(二)分步骤编译编译流程

(三)扩展

总结


前言

        Ubuntu是一个以桌面应用为主的Linux发行版操作系统,Ubuntu 是一个基于 Linux 内核的开源操作系统,它提供了简单易用的界面和丰富的功能,广受开发者和普通用户的喜爱。

        本文介绍Ubuntu系统的中的vim编辑器和gcc编译器,具体包括vim编译器的打开,vim编译器的三种模式,以及常用的一些命令,例如删除,复制,粘贴,光标的定位,保存,退出,显行号等命令。除此之外还有gcc编译器的相关介绍,包括gcc编译的使用方式,自定义执行文件名字,还有分步骤编译的编译流程,还简单介绍了解释型语言和编译型语言。


提示:以下是本篇文章正文内容,下面案例可供参考

一、vim编辑器

        vim编辑器是一个文本编辑器,用来写代码,值得一提的是vim的前身是vi,

(一)打开vim编辑器

vi 文件名    将文件在vi编辑器中打开(存在直接打开,如若不存在则新建并打开)

(二)vim编辑器的三种模式

        1.命令行模式

当使用vi  文件名打开一个文件,默认的就是在命令行模式。

命令行一般是用来复制粘贴等操作的。

从插入模式和底行模式回到命令行模式,按Esc键

        2.插入模式

插入模式是用来编辑文本的,通俗一点就是写代码的地方

进入插入模式的方式:在命令行模式下输入

        i 在光标所在位置前面开始插入

        I 在光标所在行的行首开始插入

        a 在光标所在位置后面开始插入

        A 在光标所在行的行尾开始插入

        o 在光标所在行下面新起一行开始插入

        O 在光标所在行上面新起一行开始插入

        3.底行模式

底行模式是一般是用来做保存退出等操作的。

进入底行模式的操作是在命令行模式下按冒号键。

(三)常用命令 

命令行模式:

gg           将光标定位到第一行

G            将光标定位到最后一行

ngg         将光标定位到第n行

yy           复制光标所在行

nyy         复制光标所在行向下数的n行(包含光标所在行)

p             在光标所在行下面开始粘贴

P             在光标所在行上面开始粘贴

dd           剪切光标所在行

ndd         剪切从光标所在行向下数的n行(包含光标所在行)

/单词        在全文件中查找单词回车之后,按n键查找下一个,按N键查找上一个

u             撤销

ctrl + r     反撤销

shift zz    保存退出

底行模式:

:w                    保存

:q                     退出

:q!                    不保存强制退出

:wq                   保存并退出

:noh                  取消查找的高亮显示

:set nu              显示行号 

:set nonu          取消显示行号

:vsp 文件名       左右分屏打开多个文件进行编辑 ctrl ww 切换编辑窗口

:wqa                  将所有打开的文件都保存退出

:%s/aa/bb/g      将全文的aa都替换成bb

:%s/aa/bb/gc     将全文的aa都替换成bb,此命令会逐个询问是否替换按y是,按n否

:m,ns/aa/bb/g    将第m行到第n行的aa都替换成bb

二、gcc编译器

(一)gcc编译器的使用

1.直接使用法:

gcc xxx.c         //xxx.c是想要编译的.c文件名

        这种编译编译方式,会在当前路径下,默认生成一个叫做 a.out 的可执行文件

        使用的时候在终端中./a.out 就可以执行了

2.自定义可执行文件名:

gcc xxx.c -o xxx         //xxx.c是想要编译的.c文件名 xxx 自定义的可执行文件名

        这种编译编译方式,会在当前路径下,生成一个自定义名字的可执行文件

        使用 ./自定义的名字 就可以执行了

(二)分步骤编译编译流程

编译流程共有四步 : 预处理-->编译-->汇编-->链接

预处理:头文件的展开,宏定义的替换以及注释的删除

        gcc -E xxx.c -o xxx.i

编译:用来词法分析和语法分析

        gcc -S xxx.i -o xxx.s

汇编:生成计算机能识别的二进制文件

        gcc -c xxx.s -o xxx.o

链接:链接库文件,生成最终的可执行文件

        gcc xxx.o -o a.out

(三)扩展

       编程语言分为两大类,编译型语言和解释型语言。

编译型语言:

        程序在运行之前,需要一个翻译的过程,将代码翻译成计算机识别的二进制语言,这个过程由编译器完成。编译型语言在执行的过程中,就无须重新编译了。

解释型语言:

        在程序运行之前,无需事先编译,而是在执行的过程中,由解释器逐行的翻译给计算机看。


总结

        以上就是今天要讲的内容,本文介绍了ubuntu中的vim编辑器和gcc编译器,列举了常用的命令和语法形式,以及gcc编译的相关知识。希望喜欢的朋友们能点点关注,点个赞支持一下,谢谢。

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

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

相关文章

Opencv 入门三(视频滑动条窗口)

视频滑动条窗口源码如下&#xff1a; #include "opencv2\highgui\highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <fstream> using namespace std; int g_slider_position 0; // 滑动条的位置 …

转行小白历险记-2023.12.19 如何解决跨域问题

讨厌突如其来的破坏计划的感觉&#xff0c;真的好烦 一、跨域以及如何解决跨域问题(反向代理) 跨域 同源&#xff1a;协议、端口、域名相同 如何解决跨域问题 jsonp:<script> 不受同源策略限制跨源域资源共享 CORS:允许 Web 应用服务器进行跨源访问控制使不同的源变成同…

CentOS6.10 卸载MySQL8.0.34升级至8.0.35

准备要更新的MySQL安装包,下载地址:MySQL :: Download MySQL Community Server 查看当前MySQL版本 备份数据库 mysqldump -uroot -p -B > /opt/backup/20231220_mysql.sql 检查备份文件 查看所有服务项: service --status-all 可以看到我们注册的MySQL服务是mysqld 停止…

【第七在线】供应链协作与商品计划:建立强大的合作关系

供应链协作在现代服装企业的商品计划中扮演着至关重要的角色。建立强大的合作关系能够提高生产效率、降低成本、减少库存和提供更好的客户服务。本文将深入探讨供应链协作的重要性&#xff0c;以及如何在服装企业中建立和维护这种关键关系。 1. 供应链协作的背景 供应链协作是…

使用Python爬取GooglePlay并从复杂的自定义数据结构中实现解析

文章目录 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》&#xff0c;对分布…

高速视频采集卡设计方案:620-基于PCIe的高速视频采集卡

一、产品概述 基于PCIe的高速视频采集卡&#xff0c;通过PCIe3.0X8传输到存储计算服务器&#xff0c;实现信号的分析、存储。 北京太速科技 产品固化FPGA逻辑&#xff0c;适配视频连续采集&#xff0c;缓存容量2GB&#xff0c;开源的PCIe QT客户端软件&#xff0c…

Kafka--Kafka日志索引详解以及生产常见问题分析与总结

一、Kafka的Log日志梳理 ​ 这一部分数据主要包含当前Broker节点的消息数据(在Kafka中称为Log日志)。这是一部分无状态的数据&#xff0c;也就是说每个Kafka的Broker节点都是以相同的逻辑运行。这种无状态的服务设计让Kafka集群能够比较容易的进行水平扩展。比如你需要用一个新…

数据库原理及应用·数据库系统结构

2.1 数据模型的概念 2.1.1 什么是数据模型 数据模型&#xff08;Data Model&#xff09; 是对现实世界数据特征的模拟和抽象&#xff0c;用来描述数据是如何组织、存储和操作的。 数据模型应满足如下三个条件&#xff1a; 能比较真实地模拟现实世界 容易为人所理解 便于在计…

设计模式(三)-结构型模式(3)-装饰模式

一、为何需要装饰模式&#xff08;Decorator&#xff09;? 在软件设计中&#xff0c;某个对象会组合很多不同的功能&#xff0c;如果把所有功能都写在这个对象所在的类里&#xff0c;该类会包含很多复杂的代码逻辑&#xff0c;导致代码不美观且难以维护。于是就有了再定义一些…

腾讯AI Lab C++开发日常实习 一面

我们是校企联合专业&#xff08;深大腾班&#xff09;&#xff0c;所以腾讯给了我们这个实习的机会&#xff0c;据说面试比一般日常实习的面试简单&#xff0c;记录人生第一次实习面试 上来先自我介绍 我介绍了学校专业和求职意向和开发经历&#xff0c;问没了&#xff1f; …

文具品牌企业网站建设的作用是什么

文具的应用非常广泛&#xff0c;不仅是学生、有些行业也会频繁使用&#xff0c;市场中大小文具品牌也是比较多&#xff0c;对文具品牌商和大经销商而言&#xff0c;批发远比零售更好&#xff0c;但在实际经营中&#xff0c;却也面临不少痛点&#xff1a; 1、拓客难 中小品牌商…

【解刊】1个月录用,18天见刊!CCF-A类顶刊,中科院基金委主办,国人占比97%!

计算机类 • 好刊解读 今天小编带来Springer旗下计算机领域顶刊&#xff0c;高分区高影响因子&#xff0c;新晋CCF-A类推荐&#xff0c;如您有投稿需求&#xff0c;可作为重点关注&#xff01;后文有相关领域真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 Science Chi…

重生奇迹MU觉醒战士攻略

剑士连招技巧&#xff1a;生命之光&#xff1a;PK前起手式&#xff0c;增加血上限。 雷霆裂闪&#xff1a;眩晕住对手&#xff0c;剑士PK战士第一技能&#xff0c;雷霆裂闪是否使用好关系到胜负。 霹雳回旋斩&#xff1a;雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手…

springboot云HIS医院信息管理系统源码

通过云HIS平台,可以减少医院投资,无需自建机房和系统,快速实现信息化服务。系统升级及日常维护服务有云平台提供,无需配备专业IT维护人员进行系统维护。 一、his系统和云his系统的区别 His系统和云his系统是两种不同的计算平台&#xff0c;它们在技术架构上存在很大的差异。下…

【jvm从入门到实战】(九) 垃圾回收(2)-垃圾回收器

垃圾回收器是垃圾回收算法的具体实现。 由于垃圾回收器分为年轻代和老年代&#xff0c;除了G1之外其他垃圾回收器必须成对组合进行使用 垃圾回收器的组合使用关系图如下。 常用的组合如下: Serial&#xff08;新生代&#xff09; Serial Old&#xff08;老年代&#xff09; Pa…

免 费 搭 建 小程序商城,打造多商家入驻的b2b2c、o2o、直播带货商城

在数字化时代&#xff0c;电商行业正经历着前所未有的变革。鸿鹄云商的saas云平台以其独特的架构和先进的理念&#xff0c;为电商行业带来了全新的商业模式和营销策略。该平台涉及多个平台端&#xff0c;包括平台管理、商家端、买家平台、微服务平台等&#xff0c;涵盖了pc端、…

java定义三套场景接口方案

一、背景 在前后端分离开发的背景下&#xff0c;后端java开发人员现在只需要编写接口接口。特别是使用微服务开发的接口。resful风格接口。那么一般后端接口被调用有下面三种场景。一、不需要用户登录的接口调用&#xff0c;第二、后端管理系统接口调用&#xff08;需要账号密…

【进阶篇】YOLOv8实现K折交叉验证——解决数据集样本稀少和类别不平衡的难题,让你的模型评估更加稳健

YOLOv8专栏导航&#xff1a;点击此处跳转 K折交叉验证 K折交叉验证&#xff08;K-Fold Cross-Validation&#xff09;是一种常用的机器学习模型评估方法&#xff0c;可以帮助我们评估模型的性能&#xff0c;特别适用于数据集相对较小的情况。 在K折交叉验证中&#xff0c;将原…

JMeter接口测试高阶——精通JMeter接口测试之BeanShell及调用java和python脚本

文章目录 一、BeanShell组件二、BeanShell自带的语法&#xff08;BeanShell常用变量和语法&#xff09;1.log打印2.vars用来操作JMeter的局部变量&#xff08;只能在一个线程组里面使用的变量&#xff09;3.props用来操作JMeter的全局变量&#xff08;能够跨线程组取值的变量&a…