Vim 维姆:我怎么看一个命令是否被打开?
我想实现一个函数,通过设置行号循环 我无法评估数字命令的状态。例如,我尝试过:Vim 维姆:我怎么看一个命令是否被打开?,vim,Vim,我想实现一个函数,通过设置行号循环 我无法评估数字命令的状态。例如,我尝试过: function! CycleNumbers() if exists(":number") set nonumber elseif exists(":nonumber") set number endif endfunction 有没有办法测试数字是否关闭?比如数字==关 感谢您的帮助您可以使用感叹号切换选项(在命令行上): 另请参见:帮助集- 如果你坚持要有
function! CycleNumbers()
if exists(":number")
set nonumber
elseif exists(":nonumber")
set number
endif
endfunction
有没有办法测试数字是否关闭?比如数字==关
感谢您的帮助您可以使用感叹号切换选项(在命令行上): 另请参见
:帮助集-代码>
如果你坚持要有一个函数,那么你想要的是
fu! CycleNumbers()
set number!
endfu
编辑
如果要查询选项的当前值,请使用&option
语法:
if &number == 0
...
else
...
endif
为什么不检查选项值?比如:
let &number = &number? 0: 1
或者就像你在评论中说的那样,setnu代码>
要获取信息,如果显示行号,请读取变量。如果是1
,则当前显示的号码<代码>0
,而不是
比如:
if &number
"showing
else
"not showing
endif
在此处填写逻辑代码。为什么需要检查:number
命令来设置行号?它们是不同的东西。是否要切换行号选项?我要切换行号是否显示。我知道我只能说一个数字。但我希望周期更复杂,因此我需要能够检查行号显示的状态。我希望这有道理。当心!在Vim的最新版本中,可以设置相对编号和绝对编号,在光标处显示绝对线,在其他地方显示相对编号。因此,你有4个条件来检查一个完整的周期。这正是我想要的,非常感谢!谢谢,这更多的是查询而不是切换。我想从无行号->行号->相对行号切换
if &number
"showing
else
"not showing
endif