据我所知,vim的主要目标之一是可移植性和自定义。手册中关于各种问题的不同工作的评论丰富并不让我感到惊讶。但是,我不明白为什么几乎每个功能都可以通过编译标志禁用,它的用途是什么?通过某种配置,能否在运行时禁用功能会更容易吗?
据我了解(我尝试深入研究vim代码,但没有编写任何补丁),这使代码库变得更加复杂,这正是Neovim开发人员试图删除的内容。为什么vim开发人员会采用这种方法?
答案 0 :(得分:1)
有几种力量可以拥有许多标志(其中一些已在评论中提及):
#ifdef
vi
的默认实现;那个不的人应该具有任何扩展功能所以,我(非官方)的猜测是随着Vim的成长和成熟,一个有用且必要的(见上文)功能越来越多地用于越来越多的功能。最初,这很好(一致性,配置的单一机制)。当问题开始出现时,追溯切换到(更好的?)方法(如运行时配置)为时已晚; (开发和测试)努力现在将是令人望而却步的。