Linux —— 基础开发工具2

2. 编辑器 Vim

2.1 Linux编辑器 - vim使用

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

2.2 vim的基本概念

vim其实有很多的模式,但是只需要掌握3种就可以了,分别是命令模式、插入模式、底行模式,各模式的功能区分如下:

正常/普通/命令模式:

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式

插入模式:

只有在插入模式下,才可以做文字的输入,按【ESC】键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。

末行模式(底行模式):

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

在命令模式下," shift+; "即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入:help vim-modes

2.3 vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

vim test.c

不过要注意的是,进入从vim之后,是处于【正常模式】,你要切换到【插入模式】才能够输入文字。
【命令模式】切换至【插入模式】

输入a

输入i

输入o

【插入模式】切换至【命令模式】

目前处于【插入模式】,就只能一直输入文字,如果输错了字,想用光标键往回移动,将盖子删除,可以先按一下【ESC】键跳到【命令模式】再删除文字。当然,也可以直接删除。

【命令模式】切换至【底行模式】

【shift+;】,其实就是输入【:】

退出vim及保存文件,在【命令模式】下,按一下【:】冒号键进入【底行模式】,例如:

:w(保存当前文件)

:q(输入【wq】,存盘并退出vim)

:q!(输入q!,不存盘强制退出vim)

vim filename + n:光标定位到第n行

2.4 命令模式:

u:撤销操作;ctrl+r:反撤销操作。

删除文字的总结:

【x】:每按一次,删除光标所在位置的一个字符

【nx】:表示删除光标所在位置的"后面(包含自己在内)"n个字符

【X】:大写的X,每按一次,删除光标所在位置的"前面"一个字符

【nX】:表示删除光标所在位置的"前面"n个字符

【dd】:删除光标所在行

【ndd】:从光标所在行开始删除n行

2.5 插入模式:

底行模式:

2.6 底行模式:

vim操作总结图:

3. 编译器gcc/g++

3.1 背景知识

  1. 预处理(进行宏替换/去注释/条件编译/头文件展开等)

  2. 编译(生成汇编)

  3. 汇编(将汇编代码生成机器可识别的代码)

  4. 链接(生成可执行文件或库文件)

3.2 gcc编译选项

格式:

gcc 【选项】 要编译的文件 【选项】 【目标文件】

3.2.1 预处理

gcc --E hello.c --o hello.i

3.2.2 编译(生成汇编)

gcc --S hello.i --o hello.s

3.2.3 汇编(生成机器可识别代码)

gcc --c hello.s --o hello.o

3.2.4 链接

gcc hello.o --o hello

3.2.5 动态链接和静态链接

4. 自动化构建-make/makefile

4.1 背景

makefile带来的好处就是------"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,可见,makefile都成为了一种在工程方面的编译方法。

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

4.2 使用

相关推荐
NiceCloud喜云7 分钟前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
easy_coder36 分钟前
Linux LVM 知识文档
linux·运维
小小的木头人1 小时前
Ubuntu 使用 udev + systemd + UUID 实现 USB 硬盘自动挂载
linux·运维·ubuntu
布鲁飞丝2 小时前
彩笔运维勇闯机器学习--cpu与qps的线性关系
运维·人工智能·机器学习
kaoa0003 小时前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan3 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全
2601_965798474 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
我头发多我先学4 小时前
linux系统编程:初识进程
linux·运维·服务器
Freak嵌入式4 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
云飞云共享云桌面4 小时前
SolidWorks—天津智能装备工厂1台高配主机共享给10个研发用
运维·服务器·自动化·汽车·制造