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

news2024/11/24 7:17:49

前言:

在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

 

 

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

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

相关文章

实现外网访问本地服务

最近开发需要其他项目组的人访问我本地服务测试,但又不在同一个地方,不能使用内网访问,所以需要外网访问本地服务功能. 条件: 1.需要一台具备公网IP的服务器 我用的服务器是windows,电脑也是Windows系统 2.下载frp 软件,只需要下载一份就可以了,分别放到服务器上和本地目录既…

2011-2021年全国各省绿色创新效率数据(原始数据+测算结果)

2011-2021年全国各省绿色创新效率数据(原始数据测算结果) 2011-2021年全国各省绿色创新效率 1、时间:2011-2021年 2、范围:全国31省市 3、来源:各省年鉴、科技年鉴、环境年鉴 4、指标:地区、编号、年份、R&D人…

设计模式大白话——命令模式

命令模式 一、概述二、经典举例三、代码示例(Go)四、总结 一、概述 ​ 顾名思义,命令模式其实和现实生活中直接下命令的动作类似,怎么理解这个命令是理解命令模式的关键!!!直接说结论是很不负责…

树形结构的快速生成

背景 相信大家都遇到过树形结构,像是文件列表、多级菜单、评论区的设计等等,我们都发现它有很多层级,第一级可以有多个,下边的每一个层级也可以有多个;有的可以设计成无限层级的,有的只能设计成两级。那么…

工程师使用IT服务台软件可以解决哪些问题?

现如今企业数字化建设已初具规模,业务系统基本已告一段落,而下一步关注的重点则从技术转向管理,如何能让这些系统更好运行起来,如何提高管理效率已是重中之重。在此向您推荐一款高效的IT服务管理工具——ServiceDesk Plus&#xf…

elementui的el-tabs标签页样式修改

一、官网样式: 二、修改样式 1.去掉下划线 效果: 代码: /* 去掉tabs标签栏下的下划线 */ ::v-deep .el-tabs__nav-wrap::after {position: static !important;/* background-color: #fff; */ } 2.改变下划线颜色 效果: 代码:…

使用VisualStudio制作上位机(三)

文章目录 使用VisualStudio制作上位机(三)第三部分:GUI内部函数设计使用VisualStudio制作上位机(三) Author:YAL 第三部分:GUI内部函数设计 这一部分,主要实现CAN设备的打开 将CAN厂家的二次开发文件添加到工程里调用相关函数打开或关闭CAN首先,添加“类文件”,类主…

死锁的典型情况、产生的必要条件和解决方案

前言 死锁:多个线程同时被阻塞,他们中的一个或全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 目录 前言 一、死锁的三种典型情况 (一)一个线程一把锁 (二)…

聊一聊a_bogus

前言 可以关注我哟,一起学习,主页有更多练习例子 如果哪个练习我没有写清楚,可以留言我会补充 如果有加密的网站可以留言发给我,一起学习共享学习路程 如侵权,联系我删除 此文仅用于学习交流,请勿于商用&a…

保护隐私为先的话,最好是不登录用ChatGPT,6种方法助你轻松接入-纯分享

ChatGPT是OpenAI研发的强大AI语言模型,用户可以通过它进行有意义的对话,并获取问题解答。但是,一些用户可能更倾向于在不需要创建账号或不登录的情况下使用ChatGPT。在这篇指南中,我们将探讨各种无需账号即可访问ChatGPT的方法。无…

续二:《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》

DDD领域驱动设计批评文集 “软件方法建模师”不再考查基础题 《软件方法》各章合集 我写了一篇文章,批评付施威的《DDD诊所——聚合过大综合症》(以下简称《DDD诊所》),文章是《你的医书是假的!批评付施威的《DDD诊…

【AI模型】Windows端深度学习环境配置

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Windows端深度学习环境配置。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不…

zhm_real/MotionPlanning运动规划库中A*算法源码详细解读

本文主要对zhm_real/MotionPlanning运动规划库中A*算法源码进行详细解读,即对astar.py文件中的内容进行详细的解读,另外本文是 Hybrid A * 算法源码解读的前置文章,为后续解读Hybrid A * 算法源码做铺垫。 astar.py文件中的源码如下&#xff…

python pipenv环境部署django项目实践

将代码上传到服务器: 安装pipenv: pip3 install pipenv 安装项目虚拟环境: cd /www/wwwroot/python-django pipenv install 如果提示python版本问题,修改Pipfile文件内的python版本即可。 然后进入虚拟环境安装依赖包&#x…

Java学数据结构(1)——抽象数据类型ADT 表List、栈Stack和队列Qeue

目录 引出抽象数据类型(abstract data type,ADT)表ListArrayList,Vector, LinkedListArrayList手动实现与分析Vector的分析(线程安全)LinkedList 的手动实现与分析 栈stack—后进先出java中stack源码分析栈的应用:检查…

Android 市场的变化,影响多少开发被迫……

前言 Android 开发在2010年时,广受市场需要,那时候在一线城市很容易拿到10K的起步薪资,Android开发的市场空缺大概有30万左右。那时引起了大量java开发者开始学习Android开发,招聘市场面试要求上只要有一定java语法基础&#xff…

使用Nodejs创建简单的HTTP服务器,借助内网穿透工具实现公网访问的方法分享

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

淘宝销量采集(淘宝店的销售数据如何获取),淘宝API接口申请指南

淘宝销量采集是在网络商业流程中的一个非常重要的环节,可以帮助商家更好地了解市场的消费状况和竞争情况。通过对淘宝商品的销量数据进行采集与分析,商家可以有效地了解市场上的热销商品、竞争情况、市场价格趋势等重要信息,从而制定相应的营…

【DevOps视频笔记】4.Build 阶段 - Maven安装配置

一、Build 阶段工具 二、Operate阶段工具 三、服务器中安装 四、修改网卡信息 五、安装 jdk 和 maven Stage1 : 安装 JDK Stage 2 : 安装 Maven 2-1 : 更换文件夹名称 2-2 : 替换配置文件 settings.xml- 2-3 : 修改settings.xml详情 A. 修改maven仓库地址 - 阿里云 B…

RISC-V IOPMP实际用例-Andes SoC‘s Rapid-k模型

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。