致敬,“编辑器之神”Vim的开发者Bram Moolenaar去世

news2024/9/30 23:34:48

编辑器之神Vim之父Bram Moolenaar逝世,享年62岁。其家人称,因过去几周里病情迅速恶化,Bram Moolenaar于8月3日去世。Bram的一生将大部分时间都奉献给了Vim,甚至在一个月前,他还在对Vim做着更新、修改工作。

 

Vim 是一个功能强大、多功能且免费的开源文本编辑器。项目最初的简称是 Vi IMitation,因为当时 Bram 的目标只是完全复制 Vi 的功能,所以名字也是 Vi IMitation(模拟)的简称。

Vim 是目前最受欢迎的文本编辑器之一,Vim凭借它的高效、可扩展、完全免费开源等特性,在程序员群体的影响力可以说是不言而喻的,和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。一个程序员,只要用熟了Vim,没有不爱的。任何Linux用户,几乎都无法绕开命令行,也绕不开Vim编辑器。

Bram Moolenaar是一名荷兰程式设计师,在自由软体界素有盛名。他是vim软体的最初开发者,软体版本管理者,被推崇为终身仁慈独裁者。

Bram是ICCF Holland的倡导者,ICCF是一个总部设在乌干达Kibaale的艾滋病受害者非政府组织。1994年,他自愿成为Kibaale儿童中心的水和卫生工程师。1997年,他为ICCF Holland筹集了估计2000美元,一年后筹集了4000美元。1999年,捐赠金额总计约7000美元。

所有开发者学习编码几乎都接触过Vim。Bram的离世,众多网友纷纷用Vim发文悼念。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/905709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据在内存中的储存·大小端(文字+画图详解)(c语言·超详细入门必看)

前言:Hello,大家好,我是心跳sy😘,本节我们介绍c语言的两种基本的内置数据类型:数值类型和字符类型在内存中的储存方法,并对大小端进行详细介绍(附两种大小端判断方法)&am…

操作系统——进程和线程

文章目录 1.进程和线程的区别2.进程有哪几种状态?3.进程间的通信方式4.线程间的同步的方式5.进程的调度算法 1.进程和线程的区别 从上图可以看出:一个进程中可以有多个线程,多个线程共享进程的堆和方法区 (JDK1.8 之后的元空间)资源,但是每个…

块/ if else/ switch /for for each

1、块作用域, 定义在{}中的变量,只能在{}内生效 import java.util.*; public class Test{ public static void main(String[] xxx){int a10;if(a>9){int k 2;//k只在if{}内有效}//这个括号之后再对k进行操作,违法} } import java.util.…

Java之优雅处理 NullPointerException空指针异常

前言 NPE问题就是,我们在开发中经常碰到的NullPointerException。假设我们有两个类,他们的UML类图如下图所示 在这种情况下,有如下代码 user.getAddress().getProvince(); 这种写法,在user为null时,是有可能报Nul…

AI引擎助力,CamScanner智能高清滤镜开启扫描新纪元!

文章目录 ⭐ 写在前面⭐ 突破图像处理难点:扫描全能王的独特优势⭐ 耳听为虚,眼见为实⭐ 产品背后的主要核心:AI-Scan助力⭐ 深度学习助力智能文档处理的国际化进程⭐ 品味智能文档处理的轻松与精准 ⭐ 写在前面 在数字化快速发展的今天&…

CentOS6上安装MySQL8与Nginx开机自启

背景 临时在一台华为云的 CentOS6 上安装部署一个业务系统,这里记录下 MySQL 8 与 Nginx 的安装过程中遇到的问题。 CentOS6上安装MySQL8 # 下载 wget http://repo.mysql.com/yum/mysql-8.0-community/el/6/x86_64/mysql-community-common-8.0.19-1.el6.x86_64.r…

7-8 二分查找法

分数 10 全屏浏览题目 切换布局 作者 王跃萍 单位 东北石油大学 用二分法在一个有序数列{1,2,3,4,5,6,7,8,9,10}中查找key值,若找到key则输出其在数组中对应的下标,否则输出not found。 输入格式: 直接输入一个要查找的正整数key。没有其它任何附加…

并发-并发挑战及底层实现原理笔记

并发编程挑战 上下文切换 cpu通过给每个线程分配cpu时间片实现多线程执行,时间片是cpu分配给各个线程的时间,cpu通过不断切换线程执行。线程有创建和上下文切换的开销。减少上下文切换的方方法 – 无锁并发编程,eg:将数据的id按…

CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 …

16----公式

本节我们来学习如何在markdown中打印公式 Markdown是一种轻量级标记语言,常用于撰写文档、博客和论坛帖子。虽然Markdown本身并不支持数学公式,但可以使用一些扩展来实现公式的显示。在支持公式扩展的 Markdown 解析器中,我们可以使用 Katex …

【核磁共振成像】临床基本通用脉冲序列

目录 一、脉冲序列二、自旋回波(SE)脉冲序列2.1 自旋回波脉冲序列2.2 信噪比、差噪比2.3 采样2.4 改进的自旋回波变型序列 三、反向恢复(IR)脉冲序列3.1 反向恢复脉冲序列3.2 关于反向恢复脉冲序列的改进 四、梯度回波(GE)脉冲序列4.1 GE序列基本概念4.2 三维成像 五、相干稳态…

【Spring Boot 源码学习】自动装配流程源码解析(下)

自动装配流程源码解析(下) 引言往期内容主要内容4. 排除指定自动配置组件5. 过滤自动配置组件6. 触发自动配置事件 总结 引言 上篇博文,笔者带大家了解了自动装配流程中有关自动配置加载的流程; 本篇将介绍自动装配流程剩余的内…

【Freertos基础入门】同步互斥与通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、同步互斥与通信是什么?1.基础概念2.freertos通信可用的手段 二、同步与互斥的概念三、各类通信的区别与适用场景总结 前言 本系列基于stm32系列…

wustojc2005中英长度单位换算

#include <stdio.h> int main() {int n, inch;int foot;scanf("%d", &n);foot n /100.0/0.3048;inch (n/100.0/0.3048-foot)*12;printf("%d %d",foot,inch);return 0; }

使用PyMuPDF添加PDF水印

使用Python添加PDF水印的博客文章。 C:\pythoncode\new\pdfwatermark.py 使用Python在PDF中添加水印 在日常工作中&#xff0c;我们经常需要对PDF文件进行处理。其中一项常见的需求是向PDF文件添加水印&#xff0c;以保护文件的版权或标识文件的来源。本文将介绍如何使用Py…

Python自动化测试五种模型

一、前言 在自动化测试中&#xff0c;我们往往将自动化脚本都归纳属于哪种框架模型&#xff0c;比如关键字驱动模型等。 本篇将列举实际自动化测试中&#xff0c;Python 自动化测试的五种模型&#xff1a;线性模型、模块化驱动模型、数据驱动模型、关键字驱动模型、行为驱动模…

大模型框架LangChain开发实战(一)

一、概述 在大模型应用中&#xff0c;通常是基于框架来呼叫模型的&#xff0c;大模型提供了两个最重要的功能&#xff0c;一是提供了具体的intermediate steps&#xff08;即做事情的中间步骤&#xff0c;模型作为reasoning engine&#xff09;&#xff0c;二是提供了evaluati…

vue3实现容器内容滚动到底,触底加载新数据

scroll方式实现 在Vue3中&#xff0c;可以使用ref和onMounted钩子函数获取容器元素并监听滚动事件&#xff0c;判断内容是否滚动到了底部&#xff0c;从而触发加载新数据。 以下是一个简单的示例代码&#xff1a; <template><div class"container" ref&…

Kafka的底层“真面目”

简介 kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息&#xff0c;消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。 kafka对外使用topic的概念&#xff0c;生产者往topic里写消息&…

并查集路径压缩(Java 实例代码)

目录 并查集路径压缩 Java 实例代码 UnionFind3.java 文件代码&#xff1a; 并查集路径压缩 并查集里的 find 函数里可以进行路径压缩&#xff0c;是为了更快速的查找一个点的根节点。对于一个集合树来说&#xff0c;它的根节点下面可以依附着许多的节点&#xff0c;因此&am…