为什么苹果 vim 编译时没有隐藏功能?



我注意到这个事实试图使用Yggdroot/indentLine插件,这需要隐藏功能。

$ /usr/bin/vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 29 2017 18:37:46)
Included patches: 1-503, 505-680, 682-1283
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
...
-conceal         +libcall         -profile         +visualextra
...

Vim> 7.3 通常支持 +隐藏功能。

有谁知道为什么苹果在编译时明确排除了隐藏功能?

提前谢谢。

很难说为什么他们会做出这样的选择。只有一个苹果 员工将能够帮助我们解释这一点。但是,我没有 认为它本身就是对conceal的明确排除。

编译 Vim 时,配置脚本接受一个名为--with-features控制要启用的一组功能或 禁用。

--with-features=TYPE.  tiny, small, normal, big or huge (default: huge)

从 src/自动/配置 L1532

conceal功能仅在时启用,并且 取决于+syntax

/*
* +conceal     'conceal' option.  Needs syntax highlighting
*          as this is how the concealed text is defined.
*/
#if defined(FEAT_BIG) && defined(FEAT_SYN_HL)
# define FEAT_CONCEAL
#endif

来自 src/feature.h L496-502

您可以看到每个功能集中包含的内容的便捷列表 检查:h +feature-list。因此,从其他功能来看,我会 假设conceal被禁用只是因为他们正在使用 功能集选项--with-features=normal

强烈建议安装更新、更完整的 Vim。 替换系统程序可能不是最佳的,但这正是 为什么有很多选择可以正确地做 并保持 Vim 的更新和完整。 如果您有自制软件 安装后,一个简单的命令就可以了:

$ brew install vim

或者,如果您有MacVim,您也可以使用其内部 通过在 shell 上创建别名或类似的东西来执行。

最新更新