Linux下的系统编程——vim/gcc编辑(二)

前言:

在Linux操作系统之中有很多使用的工具,我们可以用vim来进行程序的编写,然后用gcc来生成可执行文件,最终运行程序。下面就让我们一起了解一下vim和gcc

目录

一、vim编辑

1.vim的三种工作模式

 2.基本操作之跳转字符

(1)显示行号:

(2)跳转到指定行:

(3)跳转文件首:

(4)跳转文件尾:

(5)自动格式化程序:

(6)大括号对应:

(7)光标移至行首:

(8)光标移至行尾:

3.基本操作之删除

(1)删除单个字符:

(2)替换单个字符:

(3)删除一个单词:

(4)删除光标至行尾:

(5)删除光标至行首:

(6)删除指定区域:

(7)删除指定1行:

(8)删除指定N行:

4.基本操作之复制粘贴

(1)复制:

(2)粘贴:    

5.基本操作之查找替换

(1)查找:

(2)  单行替换:

(3)通篇替换:

(4)指定行的替换:

6.基本操作之查找替换

(1)撤销、反撤销:

(2)分屏:

(3)跳转至 man 手册:

(4)查看宏定义:

(5)在末行模式执行shell命令:

7:vim的配置

 二、gcc编译

gcc的4步骤:


 

一、vim编辑

1.vim的三种工作模式

7d679739cb0445248b2a512a0e0e71fd.png

 2.基本操作之跳转字符

(1)显示行号:

        1)set number (末行模式)    临时显示行号

03fa3ef257a344e7aef2089dfe108f94.png

        2)set nonumber(末行模式)      临时隐藏行号

264bef96a3d04aa6aa3b929c1592367f.png

        3)永久配置行号

6775b782a3314bc3b92d62794de14f02.png

 7c94efdad97f406e8fa49a8c8890a950.png

 

(2)跳转到指定行:

        1)10G (命令模式)

        2):10  (末行模式)

ef8f44cac1f84fcfa79b3457e8db6a11.png

(3)跳转文件首:

    gg (命令模式)

(4)跳转文件尾:

    G(命令模式)

(5)自动格式化程序:

    gg=G(命令模式)  调整代码格式

(6)大括号对应:

    % (命令模式)    准确定位"{"所对应的"}"

(7)光标移至行首:

    0 (命令模式)执行结束,工作模式不变。

(8)光标移至行尾:

    $ (命令模式)执行结束,工作模式不变。

3.基本操作之删除

(1)删除单个字符:

    x (命令模式)执行结束,工作模式不变。

(2)替换单个字符:

    将待替换的字符用光标选中, r (命令模式,再按欲替换的字符

(3)删除一个单词:

    dw(命令模式) 光标置于单词的首字母进行操作。

(4)删除光标至行尾:

    D 或者 d$(命令模式)

(5)删除光标至行首:

    d0 (命令模式)

(6)删除指定区域:

V (命令模式)切换为 “可视模式”,使用 hjkl挪移光标来选中待删除区域。  按 d 删除该区域数据。

(7)删除指定1行:

    在光标所在行,按 dd (命令模式)

(8)删除指定N行:

    在光标所待删除首行,按 Ndd (命令模式)

4.基本操作之复制粘贴

(1)复制:

    yy:复制一行        3yy:复制多行

(2)粘贴:    

    p:向后、P:向前。

5.基本操作之查找替换

(1)查找:

    1)找 设想 内容:

        命令模式下, 按 “/” 输入欲搜索关键字,回车。使用 n 检索下一个

    2)找 看到的内容:

        命令模式下,将光标置于单词任意一个字符上,按 “*”   /   “#” 

(2)  单行替换:

    将光标置于待替换行上, 进入末行模式,输入 :s /原数据/新数据

(3)通篇替换:

    末行模式 :%s /原数据/新数据/g     如果g:不加,只替换每行首个。    

(4)指定行的替换:

    末行模式:起始行号,终止行号s /原数据/新数据/g   g:不加,只替换每行首个。

        :29,35s /printf/println/g

6.基本操作之查找替换

(1)撤销、反撤销:

    u、ctrl+r(命令模式)

(2)分屏:

    sp:横屏分。 Ctrl+ww 切换。

    vsp:竖屏分。Ctrl+ww 切换。

(3)跳转至 man 手册:

    将光标置于待查看函数单词上,使用 K(命令模式)跳转。 指定卷, nK

(4)查看宏定义:

    将光标置于待查看宏定义单词上,在命令模式中使用 [d 查看定义语句

(5)在末行模式执行shell命令:

    :!命令        :! ls -l 

7:vim的配置

5a3df6103db94cb4a8cb411315754ad1.png

e817ec29a85344a29643b585acdfddde.png

 

 二、gcc编译

 

gcc的4步骤:

预处理、编译、汇编、连接。

ecb7db660ade47bcbe8da5d6407a35d5.png

    -I:    指定头文件所在目录位置。

    -c:    只做预处理、编译、汇编。得到 二进制 文件!!!

    -g:    编译时添加调试语句。 主要支持 gdb 调试。

    -Wall: 显示所有警告信息。

    -D:    向程序中“动态”注册宏定义。   #define NAME VALUE

ff526e68565f4bfc8750ab5f8111bf13.png

 f4faaa0d636643178932fcfc8a66754c.png

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

always for

怎么改写 reg test[3:0]; always (posedge clk) begin//int i0;if(rst) begintest[0] <0;test[1] <0;test[2] <0;test[3] <0;endelse beginif(test[0]0) beginif(wea )test[0] < 1;endelse if(test[1]0) begin //优先级if(wea )test[1] < 1;endelse if(te…

【android12-linux-5.1】【ST芯片】HAL移植后没调起来

ST传感器芯片HAL按官方文档移植后&#xff0c;测试一直掉不起来&#xff0c;加的日志没出来。经过分析&#xff0c;是系统自带了一个HAL&#xff0c;影响的。 按照官方文档&#xff0c;移植HAL后&#xff0c;在/device/<vendor\>/<board\>/device.mk*路径增加PROD…

线性代数的学习和整理12: 矩阵与行列式,计算上的差别对比

目录 1 行列式和矩阵的比较 2 简单总结矩阵与行列式的不同 3 加减乘除的不同 3.1 加法不同 3.2 减法不同 3.3 标量乘法/数乘 3.3.1 标准的数乘对比 3.3.2 数乘的扩展 3.4 乘法 4 初等线性变换的不同 4.1 对矩阵进行线性变换 4.2 对行列式进行线性变换 1 行列式和…

CUDA小白 - NPP(2) -图像处理-算数和逻辑操作

cuda小白 原文链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xff0c…

docker部署前端项目保姆级教程

本地启动docker&#xff08;有不会启动的吗&#xff1f;下载docker&#xff08;小海豚&#xff09;双击起来就行&#xff09; 准备阿里云账号&#xff08;免费&#xff09; 没有就去注册一个&#xff0c;记住密码后面要用到 官网地址&#xff1a;阿里云登录 - 欢迎登录阿里云…

字符设备驱动(内核态用户态内存交互)

前言 内核驱动&#xff1a;运行在内核态的动态模块&#xff0c;遵循内核模块框架接口&#xff0c;更倾向于插件。 应用程序&#xff1a;运行在用户态的进程。 应用程序与内核驱动交互通过既定接口&#xff0c;内核态和用户态访问依然遵循内核既定接口。 环境搭建 系统&#…

华为云Stack的学习(三)

四、华为云Stack公共组件 1.华为云Stack公共负载均衡方案介绍 1.1 LVS原理 LVS是四层负载均衡&#xff0c;建立在OSI模型的传输层之上&#xff0c;所以效率非常高。 LVS有两种转发模式&#xff1a; NAT模式的转发主要通过修改IP地址&#xff08;位于OSI模型的第三层网络层&…

Linux安装Docker

文章目录 先决条件开始安装1.卸载旧版本2.安装依赖3.切换数据源4.安装Docker5.启动服务6.查看版本7.查看端口8.测试拉取镜像 同系列文章 先决条件 Linux内核版本高于3.1 开始安装 1.卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \doc…

【算法与数据结构】404、LeetCode左叶子之和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;思路比较简单&#xff0c;遍历所有节点然后判断该节点是否为左叶子节点&#xff0c;如果是&#xff0c…

Zblog博客网站搭建与上线发布:在Windows环境下利用cpolar内网穿透实现公网访问的指引

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…

新手将最简单的springboot部署上tomcat出现的意外问题

现阶段springboot部署到tomcat的文章一抓一大把且都相同,便贴一个地址以展示流程: SpringBoot打war包部署Tomcat(最全)_spring boot war 部署tomcat_聊Java的博客-CSDN博客 那么就说一下我出现的问题: 在完整复现流程且确认代码无误的情况下,部署到tomcat,此时问题出现了:启动…

PHPEXCEL 导出excel

$styleArray [alignment > [horizontal > Alignment::HORIZONTAL_CENTER,vertical > Alignment::VERTICAL_CENTER],];$border_style [borders > [allborders > [style > \PHPExcel_Style_Border::BORDER_THIN ,//细边框]]];$begin_date $request->beg…

损失函数介绍

用softmax&#xff0c;就可以将一个输出值转换到概率取值的一个范围。 交叉熵损失CrossEntropyLoss 第一个参数weight&#xff0c; 各类别的loss设置权值&#xff0c; 如果类别不均衡的时候这个参数很有必要了&#xff0c;加了之后损失函数变成这样&#xff1a; 第二个参数ign…

Leetcode 191.位1的个数

编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中…

微服务之Nacos

1 版本说明 官网地址&#xff1a; https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.1 2021.x 分支 适配 SpringBoot 2.4, Spring Cloud 2021.x 版本及以上的Spring Cloud Alibaba 版本如下表&#xff08;最新版本用*标记&am…

036 - timezone

timestamp随着mysql的time_zone变化而变化&#xff0c;但是datetime不会&#xff1b; -- 查询mysql的变量&#xff1a; show variables;-- 模糊查询变量中带有time_zone的变量&#xff1a; show variables like %time_zone%; -- 创建表 create table test_time_zone (a dateti…

小蜗语音工具1.9、文本,小说,字幕生成语音、多角色对话,语音识别、读取音频字幕

小蜗语音免费工具 一、文本转字幕文本内容和TXT文件 二、文本转语音1、文本内容生成语音2、字幕生成语音3、多角色对话4、选择文件5、批量处理 三、语音识别、音频MP31、语音识别2、下载模型下载地址 一、文本转字幕 可以把正本小说&#xff0c;生成字幕文件。不限制文件的大小…

用NeRFMeshing精确提取NeRF网络中的3D网格

准确的 3D 场景和对象重建对于机器人、摄影测量和 AR/VR 等各种应用至关重要。 NeRF 在合成新颖视图方面取得了成功&#xff0c;但在准确表示底层几何方面存在不足。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 我们已经看到了最新的进展&#xff0c;例如 NVIDIA 的…

汽车制造行业,配电柜如何实施监控?

工业领域的生产过程依赖于高效、稳定的电力供应&#xff0c;而配电柜作为电力分配和控制的关键组件&#xff0c;其监控显得尤为重要。 配电柜监控通过实时监测、数据收集和远程控制&#xff0c;为工业企业提供了一种有效管理电能的手段&#xff0c;从而确保生产的连续性、安全性…

针对论坛系统进行功能测试和性能测试

项目链接:飞鸽论坛 目录 一. 项目背景 二. 项目功能 三. 功能测试 注册: 登录: 更改用户信息: 发布帖子: 更新帖子信息: 点赞: 评论: 发送私信: 测试报告 四. 性能测试 Virtual User Generator Controller Analysis 测试报告: 一. 项目背景 该论坛系统采用前…