vim 源码分析

http://bbs.csdn.net/topics/230031469

Ver7.1  晕.
看不明白很正常.  7.1已经很大了.  支持了太多东西. 代码行数那么多(源码压缩了都6M多).
没有linux编程经验,看懂难于登天(他的功能太强大,决定了他源码涉及面广,相对复杂.).工作需要的话,估计等你全部弄明白,都跳槽好几次了...

劝你看个低版本的. vi的源码好像不太好找(我没找到)~
不过vim1.2x/1.X的代码还是很好找的.
都很小.很容易读.而且功能也还算可以了..
vim-1.14.tar.gz   104 KB
vim-1.17.tar.gz  134 KB
vim-1.24.tar.gz  187 KB
vim-1.27.tar.gz  292 KB
vim-2.0.tar.gz    241 KB
6.0以上就很大了
vim-6.0.tar.bz2   2712 KB
vim-6.4.tar.bz2  3650 KB
vim-7.0.tar.bz2  6422 KB
vim-7.1.tar.bz2  6715 KB

给你看看功能说明:
-------------------------------------------------------------------------
1991 Nov 2 - Vim 1.14: 第一版 (在Fred Fish的第591号磁盘上).
1992 - Vim 1.22: 移植到Unix上. Vim开始挑战Vi
1994 Aug 12 - Vim 3.0: 支持多窗口多缓冲区
1996 May 29 - Vim 4.0: 支持GUI(图形用户界面) (主要是Robert Webb的努力).
1998 Feb 19 - Vim 5.0: 颜色支持和语法高亮
2001 Sep 26 - Vim 6.0: 折行, 插件, 垂直窗口分隔
vim-7.0 自动补完功能,拼写检查功能,括弧高亮显示功能,分页(tabs)功能,撤销分支功能.
-------------------------------------------------------------------------

当然7.0的功能还不只这么多,还有:
    缩进,重新编排格式
    语法高亮
    无限制的"撤消"和"重做"
    多个剪切,粘贴板
    拼写检查
    多语言支持
    可扩展性强
        宏,函数
        自定义键
        自己定制vimrc(很多人的这个文件都写得跟天书似的,可能主要考察一下记忆力)
    操作文本串,多行,矩形块
    几乎可以识别任何文本文件类型
    没有行长度和文件大小的限制(操作系统有限制除外)
    自动识别UNIX,MAC,MSWIN的行结尾符
    二进制文件编辑
    等等等等.....

毕竟是个世界一流文本编辑器.从7.0升级7.1就开发了1年多时间~~~

vim老版源码下载:
ftp://ftp.vim.org/pub/vim/old
新版源码:
ftp://ftp.vim.org/pub/vim/unix/

源码下载url:

https://vim.sourceforge.io/sources.php

[*]https://github.com/vim

https://github.com/nuvie/nuvie

http://download.chinaunix.net/download/0001000/20.shtml

http://ftp.gnu.org/gnu/src-highlite/

http://www.cs.cmu.edu/~awb/pub/minix/src/

[*]https://github.com/Stichting-MINIX-Research-Foundation/minix

https://github.com/xem/minix86

https://github.com/wieck/minix

https://github.com/pikpik/minix-pkgsrc

https://github.com/rhiguita/lab-minix

https://github.com/0xffea/MINIX3

https://github.com/nilbus/minix

https://github.com/macminix/MacMinix

vim 源码分析的更多相关文章

  1. 《深入理解Spark:核心思想与源码分析》(前言及第1章)

    自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...

  2. PHP扩展编写、PHP扩展调试、VLD源码分析、基于嵌入式Embed SAPI实现opcode查看

    catalogue . 编译PHP源码 . 扩展结构.优缺点 . 使用PHP原生扩展框架wizard ext_skel编写扩展 . 编译安装VLD . Debug调试VLD . VLD源码分析 . 嵌 ...

  3. 《深入理解Spark-核心思想与源码分析》(一)总体规划和第一章环境准备

    <深入理解Spark 核心思想与源码分析> 耿嘉安著 本书共计486页,计划每天读书20页,计划25天完成. 2018-12-20   1-20页 凡事豫则立,不豫则废:言前定,则不跲:事 ...

  4. Openstack Nova 源码分析 — 使用 VCDriver 创建 VMware Instance

    目录 目录 前言 流程图 nova-compute vCenter 前言 在上一篇Openstack Nova 源码分析 - Create instances (nova-conductor阶段)中, ...

  5. JVM源码分析-JVM源码编译与调试

    要分析JVM的源码,结合资料直接阅读是一种方式,但是遇到一些想不通的场景,必须要结合调试,查看执行路径以及参数具体的值,才能搞得明白.所以我们先来把JVM的源码进行编译,并能够使用GDB进行调试. 编 ...

  6. 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码 | v62.01

    百篇博客系列篇.本篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 51.c.h.o 本篇开始说文件系统,它是内核五大模块之一,甚至有Linux的设计哲学是" ...

  7. 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01

    百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...

  8. 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化

    前文目录链接参考: 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化 https://www.cnblogs.com/yizhiamumu/p/16694126.html 消息队列 ...

  9. ABP源码分析一:整体项目结构及目录

    ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...

随机推荐

  1. 软工实践 - 第二十九次作业 Beta 冲刺(7/7)

    队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10159251.html 作业博客:[班级博客本次作业的链接] (https://edu.cnb ...

  2. exec族

    在之前我们已经知道用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序.当进程调用一种exec函数时,该进程的用户空间代码和 ...

  3. oracle dg 备库不同步主库数据

    今天遇到一个数据库同步问题,主库被关闭,重启主库后,备库不能正常同步主库数据.只有当手动切换归档日志的时候,备库才能和主库一致. 这个问题的解决方法: 重启备库,重新应用归档日志. 操作步骤如下: / ...

  4. [USACO08MAR]土地征用Land Acquisition

    题面在这里 题意 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地. 如果约翰单买一块土地,价格就是土地的面积,但他可以选择并购一组土地, 并购的价格为这些土地中最大的长乘以最大的宽. 给定每 ...

  5. 安徽师大附中%你赛day4T2 演讲解题报告

    演讲 题目背景: 众所周知,\(\mathrm{Zdrcl}\)是一名天天\(\mathrm{AK}\)的高水平选手. 作为一民长者,为了向大家讲述自己\(\mathrm{AK}\)的经验,他决定在一 ...

  6. Generator的基本用法

    Generator函数是一个状态机,封装了多个内部状态.执行一个Generator,会返回一个迭代器对象,通过迭代器对象,可以遍历Generator函数内部的每个状态.因此,Generator函数可以 ...

  7. Codeforces Round #520 (Div. 2) A. A Prank

    A. A Prank time limit per test   1 second memory limit per test    256 megabytes 题目链接:https://codefo ...

  8. 安卓的progress

    https://www.cnblogs.com/wolipengbo/archive/2013/10/23/3383667.html

  9. P2765 魔术球问题(网络流24题)

    题目描述 «问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全 ...

  10. 移动端list布局,左边固定,右边自适应

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...