macos - 为什么苹果 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 功能。
有人知道为什么苹果在编译时明确排除了隐藏功能吗?
提前致谢。
解决方案
很难说为什么他们会做出这样的选择。只有 Apple 员工才能帮助我们解释这一点。但是,我不认为它conceal
本身就是一个明确的排除。
当你编译 Vim 时,配置脚本接受一个名为的选项,该选项
--with-features
控制一组功能的启用或禁用。
--with-features=TYPE. tiny, small, normal, big or huge (default: huge)
该 conceal
功能仅在 big 或 huge时启用,并且取决于+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
您可以通过检查来查看每个功能集中包含的内容的方便列表:h +feature-list
。因此,从其他功能来看,我会说 conceal
只是因为它们正在使用功能集选项进行编译而被禁用--with-features=normal
。
强烈建议安装更新更完整的 Vim。替换系统程序可能不是最佳的,但这正是为什么有很多替代方法可以确保正确执行并保持 Vim 更新和完整的原因。如果你 安装了Homebrew ,一个简单的命令就可以了:
$ brew install vim
或者,如果你有 MacVim,你也可以通过在你的 shell 上创建一个别名或类似的东西来使用它的内部可执行文件。
推荐阅读
- ios - Swift Playgrounds 书架标题
- javascript - 克隆适用于所有点击的元素,而不是这个
- php - Yii2 - 返回空 API 响应
- charts - Flutter Google Chart Gauge - 将标签放置在中心
- php - WordPress 网站上可恢复的致命错误
- node.js - 如何使用 ES6 标准启动服务器
- objective-c - 如何修复目标 c 中的内存泄漏?
- javascript - 在 html5 选择中获取所选选项的键(文本)
- elasticsearch - 应用洞察与弹性(ELK)
- angular - 错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“侦听器”-离子3