我在_vimrc文件中添加了一些set命令,如何检查set命令是否成功执行?我关心它的状态,因为根据先前set命令的状态可能会有一些不同的处理。
答案 0 :(得分:1)
你可以在Vim中实际处理异常。
在您的情况下,这是一个例子:
for font in ['fonta:h10', 'fontb:h10', 'fontc:h10']
if !get(s:, 'font_set')
try
execute 'set guifont='.font
let s:font_set = 1
catch
endtry
else
break
endif
endfor
有关详细信息,请参阅help :try
。
答案 1 :(得分:1)
您可以尝试提高verbose
选项的值,直到找到一个值,该值允许您捕获每个选项引发的每个错误(以及set verbosefile=somefile
因为如果你不这样做,你的生活将会很悲惨,但我怀疑你想要的是否能以一种易于管理的方式完成并且可能不值得麻烦。
以下是一些可以帮助你的习语:
尝试并发现错误
try
set option=value
catch /^Vim\%((\a\+)\)\=:EXXX/
set option=othervalue
endtry
请参阅:help :try
和:help :catch
。
请注意,将verbose
提升到其最大值并不允许我捕获应该为无效字体抛出的E596
错误,所以我的观点仍然有效:很难找到银弹解决方案。
此外,guifont
可以将逗号分隔的字符串作为值,这样您就可以给它n
字体,让Vim使用第一个有效字符。
仅在存在功能时执行某项操作
if has('mouse_sgr')
set ttymouse=sgr
endif
请参阅:help has()
。
如果你给我们一个具体的例子,你可能会对你有所帮助。