IFステートメントで条件演算子ANDまたはORを使用しますか?


30

これはおそらく非常に単純な質問ですが、これまでのところ何も答えが見つかりませんでした(適切な情報源が不足している必要があり、vimのヘルプで検索する場所がわかりません)。

条件があり、 'AND'を含めたい

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

しかし、構文が見つかりませんでした。「OR」についても同じです。


8
へぇ、.AND.および.OR.Fortranの構文ですが、私は長い間、長い間にその使用外のFortranコードを見ていません。:) Vimは&&、ANDおよび||ORの代わりにCのような構文を使用します。詳細:h expression-syntaxをご覧ください。
lcd047

1
あなたのコメントには思いやりを感じました。*長い間、Fortranコード以外で使用されているのを見たことはありません。:) *: 有難うございます。あなたのコメントに関しては、あなたが答えとしてそれを投稿するならば、私は喜んでそれを受け入れます!
フェフ

2
質問のタイトルが「and」や「or」や「or」をどのように並べているのかわかりません。(jk)
ベンミルウッド

2
「and」や「or」と書くこともできます。しかし、私はあえてしませんでした!
フェッフ

回答:


30

@ lcd047が彼のコメントで述べたように、vimscriptはCのような演算子&&とを使用します||

使用法の説明はにあります:h expr2。ドキュメントで言及されているいくつかの重要なポイントは次のとおりです

演算子は連結でき、に&&優先することがわかります。||

&nu || &list && &shell == "csh"

と同等です

&nu || (&list && &shell == "csh")

また、結果がわかれば、式「短絡」、つまり、それ以上の引数は評価されません。これは、Cで起こることのようなものです。

使用する場合:

if a || b

式はb定義されていなくても有効です。


2
lcd047 @ 1を書いて、私はドキュメントに関する注意は興味深いものになるだろうと思ったけどlcd047答えを生成する場合、私は喜んで彼はかなりのクレジットを取得できるようにこれを削除しますしませんでしたので、私はこの答えをしたこと注
statox

1
疑わしい。しばらく前に、lcd047は回答を投稿しないと言っていました。
ムル

@muru:私はどこかでそれを見たことを覚えていましたが、それが彼であり他のユーザーではないことを100%確信していませんでした。
statox
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.