惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
V
Visual Studio Blog
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
爱范儿
爱范儿
Vercel News
Vercel News
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
W
WeLiveSecurity
B
Blog RSS Feed
P
Privacy International News Feed
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Hacker News
The Hacker News
人人都是产品经理
人人都是产品经理
D
Docker
Blog — PlanetScale
Blog — PlanetScale
C
Cisco Blogs
T
Threatpost
aimingoo的专栏
aimingoo的专栏
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
Lohrmann on Cybersecurity
F
Full Disclosure
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
博客园 - 【当耐特】
T
Threat Research - Cisco Blogs
Security Latest
Security Latest
雷峰网
雷峰网
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
K
Kaspersky official blog
I
Intezer
The Register - Security
The Register - Security
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
U
Unit 42
T
Tenable Blog
IT之家
IT之家
NISL@THU
NISL@THU

博客园 - 飘啊飘

dtruss 粗糙的翻译 gdb常用命令[转] gdb中信号的处理[转] 在linux中通过进程名获得进程id busybox0.60.3源码学习开始 pygame做的贪吃蛇 python中使用struct模块处理二进制数据 使用PYGAME开发的坦克游戏[代码][思路] 一篇很好的讲/etc/inittab的文章[转] 哲学家吃空心粉问题 《代码整洁之道》笔记之函数 使用面向对象概念优化条件判断语句的一个小应用 python生成文件树的代码 深入理解软件包的配置、编译与安装[转] pygame学习之对象移动 pywin32重启电脑 - 飘啊飘 - 博客园 解决LINUX和WINDOWS时间不一置 通过状态机实现的一个配置读取函数 UNIX基础知识--《APUE》第一章笔记
一个精简的vi源码(2000行)
飘啊飘 · 2012-03-29 · via 博客园 - 飘啊飘

要毕业了,没什么事,前段时间在阅读busybox的源码,相对都挺精简的,从中找出不少有用的代码。看了不少,本来想写几篇文章讲分析的,老有事间断。。挖坑没埋。。哎
我看的是busybox 0.6版,2000年左右的版本,里面带个vi源码,我不是vi党,只会基本的hjkl,大概看了看,算是弄明白怎么回事了,加了些注释,本来想仿造一个的,热情已经褪去。。
这个是我精简过的busybox里面的那个vi(去掉了所有附加功能的宏)只有基本的功能和支持基本的按键,但能运行,只有一个文件。我猜现在的vim应该是2-3W行左右的项目了,比较复杂,想看看原理的看看我这个就行了
直接gcc vi.c就能编译。

下载链接:
https://files.cnblogs.com/shiweifu/vi.zip