Vim:如何查看命令是否已打开?

时间:2014-07-01 11:17:58

标签: vim

我想实现一个循环设置行号的函数。

我无法评估号码命令的状态。例如,我尝试过:

function! CycleNumbers()
    if exists(":number")
        set nonumber
    elseif exists(":nonumber")
        set number
    endif
endfunction

有没有办法测试号码是否关闭?像数字==关闭?

感谢您的帮助

2 个答案:

答案 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