Linux工具【1】(编辑器vim、编译器gcc与g++)

这篇具有很好参考价值的文章主要介绍了Linux工具【1】(编辑器vim、编译器gcc与g++)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

vim(vi improved)编辑器是从 vi 发展出来的一个文本编辑器。 代码补全、编译及错误跳转、语法高亮等方便编程的功能特别丰富,在程序员中被广泛使用。
vim 可以说是程序开发者的一项很好用的工具,它更是一个程序开发工具而不只是文字处理软件。

Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
在vim中编辑代码可以使程序员的手指集中在键盘中央,从而提高效率。

在vim中编辑代码后,要执行代码就需要编译器,在Linux中使用gccg++编译C与C++代码

vim

为方便演示,我们touch一个test_vim.c文件,并使用vim 文件名以vim方式打开这个文件
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

Vim的三种模式及模式切换

vim编辑器有许多模式,在这里只介绍三种常用的模式:命令(普通)模式Normal mode、底行模式Last line mode、插入模式Insert mode

Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入到Insert mode或者到 last line mode下:

使用vim 文件名 打开后的状态就是命令(正常)模式:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,是使用的最频繁的编辑模式。在命令模式下按i即可进入该模式,按Esc键可回到命令行模式:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
这个模式中可以正常编辑代码,就不赘述了。

末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下按: 即可进入该模式,按Esc键可回到普通模式:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

普通模式下操作

由于空文件下无法观察普通模式的操作,所以先使用插入模式在test_vim.c文件中输入一些内容
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

常用命令:

  1. 移动光标
    小写英文字母hjkl,分别控制光标左、下、上、右移一格:
    G:移动到文章的最后
    $ :移动到光标所在行的“行尾”
    ^:移动到光标所在行的“行首”
    w:光标跳到下个字的开头
    e:光标跳到下个字的字尾
    b:光标回到上个字的开头
    #l:光标移到该行的第#个位置
    gg:进入到文本开始
    ctrl + b:屏幕向后移动一页
    ctrl + f:屏幕向前移动一页
    ctrl + u:屏幕向后移动半页
    ctrl + d:屏幕向前移动半页
    (移动光标的命令就不举例使用了)

  2. 删除文字
    x:每按一次,删除光标所在位置的一个字符
    #x:表示删除光标所在位置的后(包含自己在内)#个字符
    X:每按一次,删除光标所在位置的前一个字符
    #X:表示删除光标所在位置的前#个字符
    dd:删除光标所在行
    #dd:从光标所在行开始删除#行
    Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

  3. 复制
    yw:将光标所在之处到字尾的字符复制到缓冲区中
    #yw:复制#个字到缓冲区
    yy:复制光标所在行到缓冲区。
    #yy:表示拷贝从光标所在行向下#行文字
    p:将缓冲区内的字符贴到光标所在位置
    需要注意的是:所有与y有关的复制命令都必须与p配合才能完成复制与粘贴功能
    Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

  4. 替换
    r:替换光标所在处的字符。
    R:替换光标所到之处的字符,直到按下Esc键为止。
    Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

  5. 撤销上一次操作
    u:回到上一个操作,按多次可以执行多次回复
    ctrl + r: 撤销的恢复

  6. 更改
    cw:更改光标所在处的字到字尾处
    c#w:表示更改#个字符

  7. 跳至指定的行
    ctrl+g: 列出光标所在行的行号
    #G:表示移动光标至文章的第#行行首

底行模式下操作

常用命令:

  1. 列出行号
    set nu: 在文件中的每一行前面列出行号。
    (我使用的vim环境已经是配置过的,所以会默认显示行号)

  2. 跳到文件中的某一行
    #:跳到第#行

  3. 查找字符
    /关键字: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n往后寻找
    ?关键字:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n往前寻找

  4. 保存与退出
    w: 可以将文件保存起来,使用强制保存
    q:退出vim,后加!强制离开vim
    wq:保存并退出

gcc与g++

在之前的C语言部分,我们知道我们所写的C代码要经过一系列处理为可执行程序后才能被系统执行,其中包括预编译、编译、汇编、链接

在Windows环境下我们经常使用Visual Studio、DevC、VC等开发环境环境进行代码的编写、编译与运行。而在Linux下我们使用vim编写代码后,就使用gccg++编译C与C++代码

gcc的使用(g++类似)

首先创建一个test_gcc.c文件,并使用vim在其中编辑一段代码:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

预编译

在预编译中会进行头文件包含、宏替换、注释删除、条件编译等,在Linux中执行完预编译后会生成一个.i文件

使用 gcc -E 依赖文件 -o 目标.i文件 就可以实现将原文件只处理到预编译结束,生成.i文件为止
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

我们可以使用vim打开这个test_gcc.i文件查看预编译后的代码:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
可以看到,与之前的代码对比,将stdio.h文件拷贝到这里,并删除了注释,将M替换为100。

编译

编译即将预编译后的文件转化为汇编代码,在这之前还需要做词法分析、语法分析、语义分析、代码优化等的行为,在这过程中将会检查代码中的错误(即编译错误)。编译结束后会生成一个.s文件

使用gcc -S 原文件 -o 目标.s文件 就可以实现将原文件只处理到编译结束,生成.s文件中止,(原文件可以为.c文件,也可以是已经预编译后的.i文件)
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
当然我们也可以使用vim查看这个.s文件:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

汇编

汇编即将之前生成的汇编代码生成目标代码(在这里就是机器可识别的二进制代码),这其中还要进行符号表的生成等(符号与其地址),之后会生成一个.o文件

使用 gcc -c 原文件 -o 目标.o文件 就可以将原文件处理到汇编结束,生成.o文件为止(原文件可以为之前的任意状态的文件)
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
我们当然也可以通过vim查看这个.o文件(但这并没有什么意义,因为完全看不懂,这里就不展示了)

链接

在进行完之前的处理后,就需要将我们写的文件与库,或者与我们写的其他文件链接起来,最终生成一个可执行程序。这个过程中会重新定位符表
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
使用 gcc 原文件 -o 可执行文件 就可以实现将之前任一状态的文件处理后进行链接从而生成一个可执行程序
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
./打开这个可执行程序就可以运行了:
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

需要注意的是,当编辑的代码中含有C99标准及以后的语法时,需要在编译时加上 -std=c99 选项

静态库与动态库

我们在文件中包含的stdio.h只是头文件,即声明。而这些函数的定义是在库中的,这也就是为什么我们需要将我们写的代码与库进行链接后才能生成可执行程序。 系统中有两种类型的库,即静态库与动态库

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中。所以生成的文件比较大,但在运行时也就不再需要库文件了,其后缀名一般为.a
动态库是在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为.so

gcc 在编译时默认使用动态库(可以通过file查看):
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim
Linux工具【1】(编辑器vim、编译器gcc与g++),Linux,linux,编辑器,vim

总结

到此,关于Linux工具中的编译器vim与编译器gcc/g++就介绍完了
在下一篇文章中将介绍其余的Linux工具,希望大家持续关注哦

如果大家认为我对某一部分没有介绍清楚或者某一部分出了问题,欢迎大家在评论区提出

如果本文对你有帮助,希望一键三连哦

希望与大家共同进步哦文章来源地址https://www.toymoban.com/news/detail-612793.html

到了这里,关于Linux工具【1】(编辑器vim、编译器gcc与g++)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux工具篇】编辑器vim

    目录 vim的基本操作 进入vim(正常模式)  正常模式-插入模式 插入模式-正常模式 正常模式-底行模式 底行模式-正常模式 底行模式-退出vim vim正常模式命令集 vim末行模式命令集 Q1Linux底下多文件操作 Q2批量化注释和去注释 Q3ctrl+z和断网的情况 Q4sudo提权 Q5vim配置  配置文件位置

    2024年01月24日
    浏览(38)
  • Linux基础工具|文本编辑器Vim的使用

    您好这里是limou3434的个人博客,感兴趣可以看看我的其他内容。 本次我给您带来的是Linux下Vim文本编辑器的使用,关于vim,您只需要知道一些常用的指令和操作即可,快速上手的秘诀是实践,并且是多次实践。 安装:在centos环境下安装vim可以使用“sudo yum install vim”,其他环

    2024年02月11日
    浏览(49)
  • 【Linux环境基础开发工具】编辑器-vim

    vim是一个编辑器,是在Linux下编程的常用工具,如果要学习在Linux下的编程, 那学会使用vim是一个必修课,今天我就来讲解如何使用vim编辑器。 目录 写在前面 什么是vim vim的常用命令 (1)gg:定位光标到第一行第一个位置 (2)shift + g:定位光标到最后一行 (3)n + shift + g:

    2024年02月07日
    浏览(53)
  • 【Linux】:Linux开发工具之Linux编辑器vim的使用

    📤 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows我们统一按照vim来进行讲解 👀vim是一款多模式的

    2024年02月06日
    浏览(46)
  • 【Linux】开发工具——vim多模式编辑器的入土&&设置sudoers白名单

    ========================================================================= 个人主页点击直达: 小白不是程序媛 Linux系列专栏: Linux被操作记 ========================================================================= 目录 前言: 基本概念 vim基本操作 [正常模式]切换至[插入模式] [插入模式]切换至[正常模式] [正

    2024年02月06日
    浏览(42)
  • Linux编译器vim的使用

    vim是Linux下的一个多模式的编译器 简单来说就是写代码的工具 不提供编译调试等功能 有语法高亮功能 可视化操作不仅可以在终端运行 还可以运行与x windows mac os windows 1、命令模式 控制光标的移动 字符,字或行 的删除 ,移动复制某区段 以及切换到插入模式和底行模式下

    2024年02月06日
    浏览(48)
  • 【Linux】Linux编译器--vim的使用

    😁作者:日出等日落 🔔专栏:Linux 当你还不能对自己说今天学到了什么东西时,你就不要去睡觉。                ——利希顿堡 目录 vim是什么 vim安装  vim的基本概念 vim的基本操作  vim正常模式命令集 vim末行模式命令集      vi/vim的区别简单点来说,它们都是多模式编

    2024年02月05日
    浏览(46)
  • 5-Linux操作系统 vi/vim编译器

    一、vi编译器介绍   Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因 此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,

    2024年02月08日
    浏览(38)
  • 【Linux系列P4】Linux需要什么?编辑器?软件包?一文帮你了解掌握 [yum]&[vim]———基础开发工具篇

    前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向未接触过Linux的老铁,主要内容含 欢迎订阅 YY 滴Linux专栏!更多干货持续更新!以下是传送门!  订阅专栏阅读: YY 的《Linux》系列 ❀❀❀❀❀ 【Linux系列-P1】 Linux环境的搭建 【Linux系列-P2】Linux的基本

    2024年02月06日
    浏览(59)
  • Linux编辑器vim

    目录 一、vim的几种模式 1、命令模式 2、编辑/插入模式 3、底行模式 ①增加行号 ②分屏操作 ③不退出vim执行命令 4、替换模式 二、vim的常见命令 1、yy命令 2、p命令 3、dd命令 4、u命令 5、Ctrl + r命令 6、shirt+g命令 7、gg命令 8、shirt+6命令 9、shirt+4命令 10、w,b命令 11、h,j,k,

    2024年02月09日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包