linux快速入门之工具使用:Vim 、Gcc

文章目录

Linux 工具使用:Vim 、 GCC

5.vim使用

vim是Linux系统里的一款文本编辑器,当然也可以选择vscode配置编程环境 ,或者使用vs2019使用ssh技术在windows下编程,发送到Linux下编译。

这里简单介绍纯粹的vim编辑器的使用方法

#Ubuntu 中安装 vim
$sudo apt install vim

#CentOS 中安装 vim
$sudo yum install vim

5.1vim的模式

vim中有三种模式 :命令模式、末行模式、编辑模式以vim方式打开文件默认进入命令模式

命令模式:可以查看文件内容、简单修改文件、搜索等操作

编辑模式: 可以对文件内容修改

末行模式: 可以执行Linux命令 ,保存文件,跳转等操作

编辑模式和末行模式之间是不能相互直接切换的

[

linux快速入门之工具使用:Vim 、Gcc

5.2 命令模式操作

通过vim打开一个文件,如果文件不存在及会创建一个新文件

#打开文件
$vim  文件名 (默认命令模式)

#保存退出
#连续按两次 z (按shift 切换大写)
ZZ

代码对齐

假设c/c++ 代码格式比较乱,可以在命令行模式下快速代码格式化,使代码美观

#通过命令行对齐代码
#最后的字符为G (按shift 切换大写)
gg = G

光标移动

光标的上下左右移动可以直接使用方向键(↑, ↓, ←, →) ,可也使用 h, j,k,l

(朋友们,记不住还是老老实实键盘方向键吧)

快捷键 功能
gg 光标移动到文件头
G 光标移动到文件尾
n G 行跳转,光标移动到 第n行
n 回车 行数向下跳转 n行

删除:

用不习惯还是按a 进入编辑模式操作

vim中的删除原理就是剪切

快捷键 功能
x(小写) 删除光标后面字符
X(大写) 删除光标前面字符
dw 删除单词(需要将光标移动单词首字符)
dd 删除光标所在行

复制和粘贴

快捷键 功能
p(小写) 粘贴在光标行下面
P(大写) 粘贴在光标行上面

撤销和反撤销

快捷键 功能
u 撤销
ctrl + r 反撤销

5.3 末行模式操作

  • 命令模式 -> 末行模式 (shift :)
  • 末行模式 -> 命令模式 (两次 Esc)

保存退出

使用vim编辑后,保存文件并退出在末行模式下完成

快捷键 功能
q 退出,未保存(会提示保存)
q! 强制退出(不提示保存)
w 保存,不退出
wq 保存并退出
x 保存并退出

替换

在末行模式下可以指定对应内容 ,替换为指定文本 (几行或全文)

快捷键 功能
s / 被替换的关键字 / 新关键字 / g 对光标所在行替换
行号 1, 行号 2s / 被替换的关键字 / 新的关键字 /g [行号1 , 行号2] 是一个从小到大的范围,对这个范围进行替换
% s / 被替换的关键字 / 新的关键字 /g % 代表对所有行进行替换

6.gcc

GCC是Linux下一个编译工具集 ,包含 gcc \ g++等编译器 ,GCC不仅支持C/C++,其他语言如 Objective -C \java等根据不同硬件平台编译,也能交叉编译。A平台编译B平台程序

部分Linux默认不带gcc编译器需要手动安装

#Ubuntu
$sudo apt update   #更新本地软件下载列表,获得最新下载地址
$sudo apt install gcc g++    

#CentOS
$sudo yum update
$sudo yum install gcc g++

#查看版本
$gcc  -v
$g++  -v

6.1 gcc运行流程

编译器对程序的编译有4个阶段 :预处理(预编译) 、 编译和优化 、 汇编 、 链接

  1. 预处理: 展开头文件 、 宏替换 、 去点注释行 (GCC调用预编译器,得到还是源文件,文本格式)
  2. 编译: GCC调用编译器 ,将文本编译为汇编文件
  3. 汇编: GCC调用汇编器 ,将汇编文件编译为二进制文件
  4. 链接: GCC调用汇编器 ,对程序需要调用的库进行链接,得到可执行的二进制文件
gcc参数 文件后缀 说明
.c 源文件
-E .i 预处理后的源文件
-S .s 汇编源文件
-C .o 汇编后的二进制文件

linux快速入门之工具使用:Vim 、Gcc

细分gcc流程:了解即可

#预处理 -E    -o  用来指定 文件名
$gcc -E demo.c -o demo.i

#编译 -S,获得汇编文件
$gcc -S demo.i -o demo.s

#汇编 -c,获得二进制文件
$gcc -c demo.i  -o test.o

#链接 ,将二进制文件和标准库链接 ,获得可执行二进制文件
$gcc test.o -o test

gcc 编译单个文件很简单 (常用)

#常用方式
$ gcc 源文件名 -o 指定文件名

#如没有指定生成文件名 gcc会自动生成 a.out可执行二进制文件
$gcc 源文件

6.2 gcc 常用参数

gcc 参数 作用
-E 预处理源文件
-S 编译指定源文件
-c 编译、汇编源代码 ,但不链接
-o (常用) 将编译的文件 取名
-I (制作静/动态库时常用) 编译的时候,指定使用的库
-L (使用静/动态库时常用) 指定include 包含文件 搜索目录
-D (为便于调试时 使用) 编译时指定一个宏
-g 编译时生成调试信息

6.3 多文件编译

例如一个项目中有三个文件 ,addNum.h \ addNum.cpp \ main.cpp ,main.cpp中调用addNum.cpp函数

addNum头文件

#include<iostream>
using namespace std;
int addNum(int a,int b);

addNum源文件

#include "addNum.h"

int addNum(int a,int b)
{
  return a+b;
}

main源文件

#include<iostream>
#include "addNum.h"
using namespcae std;

int main()
{
  int a =10,b = 20;
  int c = addNum(a,b);
  cout<<"c = "<<c<<endl;
  return 0;
}

因为头文件是包含在源文件中的,因此在使用 gcc 编译程序的时候不需要指定头文件的名字(在头文件无法被找到的时候需要使用参数 -I 指定其具体路径而不是名字)

#将文件打包编译
$g++ addNum.cpp main.cpp -o test
#运行可执行程序
$./ test
上一篇:百度文库资料下载总结技巧


下一篇:浏览器学习