这可能是一个非常简单的问题,但是到目前为止我还没有找到任何答案(我必须缺少正确的信息来源,而且我不知道在vim的帮助下可以在哪里搜索)。

我有一个条件,我希望它包含'AND',例如

if (condition1 .AND. condition2)
   "do what I want you to do
endif


,但是我找不到语法。 'OR'也是一样。

评论

呵呵。和.OR。是Fortran语法,很长一段时间以来,我还没有看到在Fortran代码外部使用过该语法。 :) Vim使用类似C的语法,&&代表AND和||。或。有关更多信息,请参见:h expression-syntax。

在您的评论中,我感到同情,因为*很长时间以来,我还没有看到在Fortran代码之外使用过该代码。 :) *:谢谢你。至于您的评论,如果您将其发布为答案,我会很乐意接受!

我发现这样混淆问题标题如何将“ and”和“ or”和“ or”并排放置。 (jk)

我可以写“和”和/或“或”。但是我不敢!

#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