You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim中检查选项是否具有默认值?

仅当Vim directory选项为默认值时才自定义设置的方法

嘿,这个需求其实很好解决!给你两种简洁的实现方式,适配不同版本的Vim:

方法一:用Vim官方自带的getdefault()函数(推荐)

如果你的Vim版本是8.2.1890及以上,官方专门新增了getdefault()函数,能直接获取选项的默认值,用起来超省心:

if exists('*getdefault') && &directory ==# getdefault('directory')
  set directory^=~/path/to/dir//
endif
  • 先通过exists('*getdefault')检查函数是否存在,避免旧版本Vim运行报错
  • &directory是当前Vim中directory选项的实际值
  • ==#用来做大小写敏感的精确对比,保证路径类选项的判断准确
  • 当两者完全一致时,就执行你的自定义设置

方法二:手动指定默认值(适配旧版Vim)

要是你还在使用较老的Vim版本,没有getdefault()函数,那可以直接写出directory的默认值(Unix-like系统下默认值通常是.,/tmp//,~/tmp//),直接对比即可:

let s:default_dir = '.,/tmp//,~/tmp//'
if &directory ==# s:default_dir
  set directory^=~/path/to/dir//
endif

这个写法兼容性拉满,不管什么版本的Vim都能正常运行~

内容的提问来源于stack exchange,提问作者planetp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:33:19