linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)

文章的目的为了记录使用C语言进行linux 开发学习的经历。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

相关链接:

linux C 语言开发 (一) Window下用gcc编译和gdb调试

linux C 语言开发 (二) VsCode远程开发 linux

linux C 语言开发 (三) 建立云服务器

linux C 语言开发 (四) linux系统常用命令

linux C 语言开发 (五) linux系统目录结构

linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)

Linux C到Android App开发推荐链接(入门十二章):

开源 java android app 开发(一)开发环境的搭建_csdn 开源 java android app-CSDN博客

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

linux C到.net mvc开发推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

主要内容:linux系统下如何进行程序程序编辑和编译。编辑通常是使用vim,编译使用gcc。最好是vscode+gcc的组合,vscode比较简单,这里不做说明。但是有些情况只能用vim,这里记一下。

目录:

1.vim如何编辑程序

2.gcc进行编译

3.vim命令介绍

一、vim如何编辑程序

以最简单的打印 Hellow world 为例编辑1个函数。

进入vim编辑器

复制代码
vim main.c

输入i进入编辑模式

按下ESC退出编辑模式

输入:wq保存并退出

复制代码
:wq

二、编译

linux下是使用gcc 来编译

先查看版本

gcc main.c -o main进行编译

./main就可以执行程序

三、vim命令介绍

Vim 模式简介

首先,理解 Vim 的几种基本模式是使用这些命令的关键:

正常模式 (Normal Mode):也称为命令模式。这是 Vim 的默认模式,用于移动光标、复制、粘贴、删除等操作。按 Esc 键可从其他模式返回此模式。

插入模式 (Insert Mode):在此模式下可以输入文本。从正常模式按 i 等键进入。

可视模式 (Visual Mode):在此模式下可以选择文本块。从正常模式按 v (字符可视)、V (行可视) 或 Ctrl+v (块可视) 进入。

命令模式 (Command-Line Mode):用于执行保存、退出、搜索替换等命令。从正常模式按 : 进入。

  1. 光标移动 (正常模式下)

命令 功能描述

h j k l 左、下、上、右 移动光标 (推荐代替箭头键)

w 移动到下一个单词的开头

b 移动到上一个单词的开头

e 移动到当前单词的末尾

0 (零) 移动到当前行的行首

^ 移动到当前行的第一个非空白字符

$ 移动到当前行的行尾

gg 移动到文件第一行

G 移动到文件最后一行

:<n> 或 <n>G 移动到第 <n> 行 (例如 :50 或 50G)

Ctrl + f 向下翻一页 (Page Down)

Ctrl + b 向上翻一页 (Page Up)

H 移动到当前屏幕的顶部 (High)

M 移动到当前屏幕的中间 (Middle)

L 移动到当前屏幕的底部 (Low)

* 向下搜索当前光标所在的单词

向上搜索当前光标所在的单词

  1. 插入与追加文本 (正常模式下使用,进入插入模式)

命令 功能描述

i 在光标前插入 (insert)

a 在光标后追加 (append)

I 在当前行行首插入

A 在当前行行尾追加

o 在当前行下方新建一行并插入 (open new line)

O 在当前行上方新建一行并插入

s 删除当前字符并插入 (substitute)

S 或 cc 删除整行并插入

  1. 删除、复制与粘贴 (正常模式下)

命令 功能描述

x 删除光标所在的字符

dw 删除一个单词 (从光标位置开始)

dd 删除整行

d$ 或 D 删除从光标到行尾的内容

d0 删除从光标到行首的内容

<n>dd 删除 <n> 行 (例如 3dd 删除 3 行)

yy 复制当前行 (yank)

<n>yy 复制 <n> 行

yw 复制一个单词

y$ 复制到行尾

p 在光标后/下方粘贴 (paste)

P 在光标前/上方粘贴

  1. 撤销与重做 (正常模式下)

命令 功能描述

u 撤销上一次操作 (undo)

Ctrl + r 重做被撤销的操作 (redo)

  1. 搜索与替换 (命令模式下使用 :)

命令 功能描述

/pattern 向下搜索字符串 "pattern" (按 n 下一个,N 上一个)

?pattern 向上搜索字符串 "pattern"

:%s/old/new/g 将文件中所有的 "old" 替换为 "new" (global)

:%s/old/new/gc 替换所有,但每次替换前需要确认 (confirm)

:s/old/new/g 仅替换当前行的 "old" 为 "new"

  1. 保存与退出 (命令模式下使用 :)

命令 功能描述

:w 保存文件 (write)

:q 退出 Vim (quit),如果文件有修改会提示

:q! 强制退出,不保存任何修改

:wq 或 :x 或 ZZ 保存并退出

:w <filename> 另存为新文件

:e <filename> 打开另一个文件进行编辑 (edit)

  1. 可视模式操作 (先按 v, V 或 Ctrl+v 进入)

命令 功能描述

v 进入字符可视模式,以字符为单位选择

V 进入行可视模式,以行为单位选择

Ctrl + v 进入块可视模式,可进行列选择

移动命令 (h,j,k,l,$等) 在可视模式下扩展选择区域

y 复制选中的内容 (yank)

d 删除选中的内容 (也相当于剪切)

p 粘贴选中的内容

相关推荐
laolitou_10242 小时前
CentOS 7安装部署RabbitMQ
linux·centos·rabbitmq
aitav04 小时前
⚡ WSL2 搭建 s5p6818 Linux 嵌入式开发平台 (part 3):Wifi驱动移植、ssh移植、e2fsprogs移植
linux·wifi·ssh·嵌入式·e2fsprogs
Elastic 中国社区官方博客4 小时前
Elasticsearch MCP 服务器:与你的 Index 聊天
大数据·服务器·人工智能·elasticsearch·搜索引擎·ai·全文检索
cpsvps_net4 小时前
VPS服务器锁等待超时处理,如何有效解决数据库性能瓶颈
服务器·数据库·oracle
南枝异客6 小时前
CentOS 7 网络连接问题
linux·运维·centos
牛奶咖啡137 小时前
实现Linux的ssh免密登录实操保姆级教程
linux·ssh·生成ssh密钥对的三种方法·添加公钥到需ssh免登录服务器·测试ssh免登录的服务器·生产环境linux的优化策略
zhangrelay8 小时前
操作系统全解析:Windows、macOS与Linux的深度对比与选择指南(AI)
linux·笔记·学习
阿方索9 小时前
Linux 正则表达式
linux·运维
TTGGGFF9 小时前
云端服务器使用指南:利用Python操作mysql数据库
服务器·数据库·python
金色熊族10 小时前
ubuntu20.04编译qt源码5.15.3
linux·c++·qt