vim - 是否可以修复vim中的选项?
问题描述
跟进如何确保 formatoptions *never* 包含 `r` 或 `o`?,措辞不好。
是否可以在 vim 中以无法被插件或启动脚本修改的方式分配选项。例如,类似:
set const final opt=value
在 .vimrc 中会很棒。我想如果 opt 已经是常量,这将是一个错误,导致 vim 在遇到这种情况时拒绝打开它正在初始化的缓冲区,甚至可能退出。
目前是否存在这样的功能?
解决方案
不完全是。:const
和都有:lockvar
,但它们仅用于变量。对于 VimScript 来说,选项是完全不同的东西。
但是,您可以使用自动命令伪造此功能。例如,
augroup ForbidSetOptions | au!
autocmd OptionSet formatoptions
\ if &filetype ==# 'foo'
\ echom 'You are not allowed to "set fo" for "foo" files!'
\ set formatoptions=jcroql
\ endif
augroup end
请注意,我们不会陷入无限递归,因为默认情况下不会从另一个自动命令触发自动命令。
但请注意,此事件不是在启动时有意触发的。因此,您可能应该查阅相关的插件文档,而不是按照您想要的方式设置选项。或者编写您自己的~/.vim/after/plugin/...
(或~/.vim/after/ftplugin/...
)脚本来自动撤消这些不需要的设置。
推荐阅读
- java - Java如何访问类的私有静态成员
- android - Alexa 技能开发:如何触发例程
- php - 使用 ImageMagick 将 HTML 转换为 PNG
- r - 在 R 中绘制 data.frame 的变量时出错?
- python - 如何在kivy轮播中显示多个项目?
- javascript - 通过显示在调试器模式下更改的内容,使用 .net api 强制窗口在 reactjs 中创建 Zip 文件以重新加载
- nginx - 除根以外的其他 NGINX 路由
- c++ - 如何测试两个三角形是否在 3D 空间中碰撞?
- java - 不支持 Spring MVC 请求方法“PATCH”
- apache-spark - 我可以在 Spark Dataframe udf 中使用 java.time.LocalDate 吗?