Conditional
Vimscript에서는 if문을 통해 조건절을 사용한다.
Multiple-Line Statements
Vimscript에서 한 줄로 코드를 처리하기 힘든 경우에는 여러 줄 로 쓸 수도 있지만, pipe character (|)를 사용할 수도 있다.
:echom "foo" | echom "bar"책의 나머지 부분에서 예시 코드를 실행할 때 newline을 사용하기 싫은 경우 pipeline을 사용해서 작성이 가능하다.
Basic If
:if 1
: echom "ONE"
:endifinteger 1을 true로 인식하여 ONE이 반환된다.
:if 0
: echom "ONE"
:endif0도 대부분의 프로그래밍 언어와 비슷하게 false로 인식.
특이한 점은 string을 true로 인식하지 않는다는 점이다.
:if "something"
: echom "INDEED"
:endif위 예시에서는 아무것도 표시되지 않는다.
더 이상한 점은 string으로 된 숫자는 true로 인식한다 (ㄷㄷ..)
:if "9024"
: echom "WHAT?!"
:endifWHAT?!을 반환하는 것을 볼 수 있다. 이를 이해하기 위해 아래 코드를 실행시켜보자.
:echom "hello" + 10
:echom "10hello" + 10
:echom "hello10" + 10차례대로 10, 20, 10이 나온다.(!) 이를 통해 알 수 있는 점은 아래와 같다.
- vim은 필요하다면 변수를 강제로 변환시킨다.
10 + "20foo"에서 vim은"20foo"를 숫자로 변환 (20)시켜 10과 더해 30을 반환시킨다. - 숫자로 시작되는 string만 숫자로 변환되고 나머지는
0으로 변환된다. - 조건절의 강제 변환과 계산을 완료하여 0이 아닌 숫자가 나오면
if문을 실행시키게 된다.
Else and Elseif
Vimscript는 Python과 비슷하게 else와 elseif를 제공한다.
:if 0
: echom "if"
:elseif "nope!"
: echom "elseif"
:else
: echom "finally!"
:endifExercises
- Drink a beer to console yourself about Vim's coercion of strings to integers. (ㅋㅋㅋ)
'tools > vim' 카테고리의 다른 글
| Learn Vimscript The Hard Way - 23: Functions (0) | 2020.03.30 |
|---|---|
| Learn Vimscript The Hard Way - 22: Comparision (0) | 2020.03.28 |
| Learn Vimscript The Hard Way - 20. Variable Scoping (0) | 2020.03.25 |
| Learn vimscript the hard way - 19장. Variables (0) | 2020.03.24 |
| Learn vimscript the hard way: 18장 - Responsible Coding (0) | 2020.03.20 |