我有一个条件,我希望它包含'AND',例如
if (condition1 .AND. condition2)
"do what I want you to do
endif
,但是我找不到语法。 'OR'也是一样。
#1 楼
正如@ lcd047在他的评论中所说,vimscript使用类似C的运算符&&
和||
。您可以在
:h expr2
上找到其用法的描述。该文档提到的一些重要要点如下所示:您会发现运算符可以串联在一起,并且
&&
优先于||
,因此&nu || &list && &shell == "csh"
< br等效于
&nu || (&list && &shell == "csh")
同样,一旦知道结果,表达式“ short-circuits”,即,不评估其他参数。这就像C中发生的情况。
如果使用:
if a || b
即使未定义
b
,表达式也将有效。评论
请注意,我之所以做出这个回答是因为@ lcd047没有写过一个,并且我认为有关该文档的注释会很有趣,但是如果lcd047给出了一个答案,我会很乐意删除该答案以让他公平地获得荣誉
–statox♦
16 Jun 15'在11:22
我对此表示怀疑。某个时候,lcd047告诉我他们不会发布答案。
–muru
16年6月15日在11:26
@muru:我也记得在某个地方看到过,但是我不是100%确定是他们,而不是另一个用户。
–statox♦
16 Jun 15'在11:28
评论
呵呵。和.OR。是Fortran语法,很长一段时间以来,我还没有看到在Fortran代码外部使用过该语法。 :) Vim使用类似C的语法,&&代表AND和||。或。有关更多信息,请参见:h expression-syntax。在您的评论中,我感到同情,因为*很长时间以来,我还没有看到在Fortran代码之外使用过该代码。 :) *:谢谢你。至于您的评论,如果您将其发布为答案,我会很乐意接受!
我发现这样混淆问题标题如何将“ and”和“ or”和“ or”并排放置。 (jk)
我可以写“和”和/或“或”。但是我不敢!