当前位置: 首页 > news >正文

Linux开发工具【中】

目录

一、vim

1.1 插入模式

1.2 底行模式

1)set nu 

2)set nonu

3) /XXX + n

4)!command

5)vs other

1.3 补充

1) 批量化操作

2)批量化替换 : 

3)快速定位:

4)!

5)查询Linux有几种模式:

1.4 扩展 - vim配置

二、编译器gcc/g++

2.1 gcc 编译选项

2.2 预处理

2.3 编译

2.4 汇编

2.5 链接


Linux开发工具【上】-CSDN博客

学会在 vim下写代码 , 很重要 , 因为以后我们避免不了会需要改一些配置文件 , 或者编写一些基础文件 。熟悉了就不会觉得很难了 , 一句话 , 菜就多练 。 

一、vim

1.1 插入模式

【插入模式】 -> 【命令模式】

按 Esc 键 

1.2 底行模式

1)set nu 

set nu : 调出行号

2)set nonu

set nonu : 退出行号

3) /XXX + n

/XXX: 搜索具有 XXX 字符的命令 , n (next ) 表示下一个

4)!command

!command : 在不退出命令行模式下,执行命令

5)vs other

vs other : 文件级别分屏

如果你分屏的文件并不存在,系统会自动生成,最后不要忘记保存并且退出!

那如何区别是那一个文件呢?

在整个终端重 ,   只有一个光标,可以看一下,光标在哪里 , 就在哪一个文件。

如何进行光标切换:

在【命令模式】下:Ctrl + ww

1.3 补充

1) 批量化操作

这里我借 批量化注释和  批量化去注释为引子 。

ctrl + v  -->   hjkl  -->  shift + i  --->   // ---> ESc

ctrl + v --->  hjkl ---> d 

这里我们 ctrl + v : 进入的是视图模式 

2)批量化替换 : 

在底行模式下:

%s /print / printf / g

1)g : 表示全部有关于print 的替换 , 如果没有 , 仅仅替换每行的首个print

2) 把后者的 printf 替换给者 printf

3)快速定位:

vim xxxx(文件名字) + n (行号)

一般用于编译的时候,代码报错,并且告诉你具体的错误是在某行的范围,使用这个指令便于快速定位 。 

4)!

!g : 快速定位历史命令以 g 为开头的命令

! 后面接历史命令的起始字母 , 能快速执行历史命令。

5)查询Linux有几种模式:

底行模式下查询:

help vim-modes

1.4 扩展 - vim配置

其实vim 还可以配置一下缩进,高亮等(见一见,但是不建议常用)。

vim 配置的原理:

1)首先先过渡一下,以后你在编写命令的时候,不要在root 账号下编写了,需要在 普通用户下编写:

adduser  XXX   //添加用户
passwd   XXX   //为新添加的用户设置密码,密码不回显

 2)创建配置文件 ( .vimrc)    ---> 如果没有

那么随后我们就可以在我们的这一个配置文件进行配置!

3)配置

touch test.c    //创建一个文件vim test.c     //编写基础代码,此时是没有行号的touch .vimrc   //ls -al 时候,如果没有该文件则创建,有则不需要vim .vimrc     //在配置文件下配置 ,例如set nu(设置行号)vim test.c     //此时再打开test.c 已经是有行号的了

 打开 test.c

1.  我们每一个普通用户 , 在自己的家目录里做一些配置项 , 对其他用户是不奏效的 , 因为在Linux 多用户下 , 文件之间是隔离的!!!

2 . 其实在系统中也有公共的 vim 配置文件 , 对所有文件都起效:

/etc/vimrc

但是 , 你别动人家root 里面的配置项 , 别动!!!别动!!!别动!!!你管好自己普通用户下的配置文件就好了 , root 不用你操心 。

3. 但是,我不知道有什么配置项怎么办?

1)大语言模型走起 : deepseek 、 文心一言 、......

2)或者还可以去 其他地方里直接找 ....(脚本)

" 关闭 vi 兼容模式(必须放在配置最开头)
set nocompatible" 显示行号
set number" 高亮当前行
set cursorline" 语法高亮
syntax enable" 自动缩进
set autoindent
set smartindent" Tab 转换为 4 个空格
set tabstop=4
set shiftwidth=4
set expandtab" 显示输入命令
set showcmd" 实时搜索高亮
set incsearch" 搜索忽略大小写(输入大写时自动关闭)
set ignorecase
set smartcase" 启用鼠标支持(normal/visual/insert 模式)
set mouse=a" 显示状态栏(0=不显示,1=多窗口时显示,2=总是显示)
set laststatus=2" 显示标尺(右下角行列号)
set ruler" 折行显示(不自动换行)
set nowrap" 代码折叠(manual-手动,indent-缩进,syntax-语法)
set foldmethod=indent" 打开文件时默认不折叠
set nofoldenable" 滚动时保留上下边距
set scrolloff=5" 显示匹配的括号
set showmatch

这里我们只要知道有这么个东西,但是不建议日常码字的时候在配置了的 vim 下编写 。

二、编译器gcc/g++

我们知道,一个源文件生成可执行文件  会经过 

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

2)    编译(生成汇编)

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

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

2.1 gcc 编译选项

格式: gcc [选项]  要编译的文件  [选项] 目标文件

2.2 预处理

头文件的展开,就相当于一个拷贝的过程 , 是递归展开的 (如果头文件中还有头文件 ) 。

  

问 : 预处理完后 , 我们的代码还是 c 语言吗? 

是 , 只不过 .i 文件时经过预处理后的一个干净的c 语言 , 与头文件、宏等都没关系了。

2.3 编译

编译:把c 语言 , 变成汇编语言 。在这个阶段中, gcc 首先要检查代码的规范性、是否有语法错误等 , 以确定代码的实际要做的工作 ,  在检查无误后,gcc 把代码翻译成汇编语言。

2.4 汇编

汇编语言  --->  二进制(生成机器可识别代码)

 

2.5 链接

记忆技巧:

相关文章:

  • 《构建社交应用用户激励引擎:React Native与Flutter实战解析》
  • WiFi出现感叹号上不了网怎么办 轻松恢复网络
  • C++模板【上篇】 —详解模板基础语法
  • 构建高可用性的LVS-DR群集:实现无缝的负载均衡与故障转移
  • 58.[前端开发-前端工程化]Day05-webpack-Git安装-配置-Git命令
  • http协议理解
  • 量子密码的轻量级通信协议笔记
  • Office宏病毒钓鱼-打点突破
  • 【嵌入式开发-LCD】
  • mac连接lniux服务器教学笔记
  • 代码随想录算法训练营第60期第三十天打卡
  • QT中的网络请求
  • 【软件设计师:软件工程】11.项目管理
  • V4L2应用程序开发-- 控制流程
  • 枚举 · 例13-【模板】双指针
  • 如何使用极狐GitLab 软件包仓库功能托管 terraform?
  • V 型球阀:多材质多驱动,精准适配复杂严苛工况-耀圣
  • 【UltralyticsYolo11图像分类完整项目-03】Onnx版Cpu预测C++实现
  • 解决word里插入公式后打不开的问题
  • Ubuntu 安装远程桌面连接RDP方式
  • 海南省三亚市委原常委、秘书长黄兴武被“双开”
  • 玉渊谭天丨一艘航母看中国稀土出口管制为何有效
  • 中信银行:拟出资100亿元全资设立信银金融资产投资有限公司
  • 调节负面情绪可以缓解慢性疼痛
  • 深入贯彻中央八项规定精神学习教育中央第一指导组指导督导河北省见面会召开
  • 轿车追尾半挂车致3死1伤,事故调查报告:司机过分依赖巡航系统