我想实现一个循环设置行号的函数。
我无法评估号码命令的状态。例如,我尝试过:
function! CycleNumbers()
if exists(":number")
set nonumber
elseif exists(":nonumber")
set number
endif
endfunction
有没有办法测试号码是否关闭?像数字==关闭?
感谢您的帮助
答案 0 :(得分:4)
为什么不检查选项值?类似的东西:
let &number = &number? 0: 1
或者正如您在评论中所说,set nu!
获取信息,如果显示行号,请阅读&number
变量。如果它是1
当前显示的数字。 0
,不是。
类似的东西:
if &number
"showing
else
"not showing
endif
在那里填写你的逻辑代码。
答案 1 :(得分:3)
您可以使用感叹号(在命令行上)切换选项:
:set number!
另见:help set-!
如果您坚持使用某项功能,那么您需要类似
的功能fu! CycleNumbers()
set number!
endfu
修改强>
如果要查询选项的当前值,请使用&option
语法:
if &number == 0
...
else
...
endif