Sau*_*ier 24 vim settings plugins global-variables macvim
在过去的几年里,我曾经使用vim来编辑远程服务器上的配置和脚本.几个星期前,我决定采取下一步,尝试使用(Mac)vim作为我的常规编辑器,除了Sublime Text 2.现在我达到了我想创建我的第一个插件的地步.
我的插件将定义~16个全局变量,可以由用户分配以调整插件的某些属性.我问自己,检查用户是否已将自己的值分配给某个变量,最优雅的方式(可能是主观的)是什么.我检查了各种其他插件,到目前为止我看到的"模式"似乎总是:
if !exists("g:pluginname_setting")
let g:pluginname_setting="default"
endif
Run Code Online (Sandbox Code Playgroud)
这似乎很简单直接.但我会一遍又一遍地重复同一段代码.由于vi(m)存在了相当长的时间,我很确定人们已经尝试了很多方法来编写插件,并且已经开发了某种"最佳实践",我认为这是我上面给出的"模式"举个例子.然而,调用一个函数来填充包含所有插件设置的字典,然后迭代字典以检查密钥以查看用户是否已经定义了他的个人偏好,这不是更优雅吗?这是一个好主意还是我应该放弃这个想法并坚持这个ìf !exists()
方法?
Jér*_*ôme 38
有一种优雅的方式:
let g:pluginname_setting = get(g:, 'pluginname_setting', "default")
Run Code Online (Sandbox Code Playgroud)
我很惊讶这在插件设置中没有广泛使用.
Ing*_*kat 22
这if exists(...)
确实是规范的配置习惯和前进的方式.当然,你可以做一些元编程来减少重复(类似的东西function! s:SetDefault( varname, default )
); 一些插件可以做到这一点.
另一方面,除非你的插件处理一个非常复杂的问题(在文本编辑器中?!),否则你打算允许高水平的自定义是好的,16个配置变量确实处于高端.你必须考虑记录所有这些并测试各种组合的努力; 也许最好先从简单的简化方法开始,然后根据用户反馈进行演变.
归档时间: |
|
查看次数: |
10535 次 |
最近记录: |