Numberes
이제 vimscript에서 사용가능한 변수 타입을 살펴볼 것이다. 우선은 numeric type
Vimscript는 두가지 숫자 변수를 사용한다: Number
와 Float
Number
: 32 bit signed integer. Integer라고 생각하면 될듯Float
: floating point number. 그냥 사용하는 float
Number Formats
Vim에서는 다양한 방식으로 Number를 사용 가능하다.
일단 가장 기본적인 방법
:echom 100
:echom 0xff
255
가 출력되는데, 0x
prefix를 사용하여서 hex notatoin을 사용할 수 있다.
:echom 010
8이 출력되는 것을 볼 수 있는데, 0
을 prefix로 사용하면 8진법 숫자를 사용할 수 있다. 주의해야할 점은 유효한 8진법 숫자가 아니면 일반 숫자가 사용된다.
:echom 017
:echom 019
017
은 8진법으로 15
(8 + 7)가 출력괴지만 019
는 유효하지 않은 8진법이기 때문에 19
가 출력된다. 이 경우 에러 처리를 하지 않기 때문에 가능하면 이런 방식의 사용은 피하는게 좋다.
Float Formats
Float도 다양한 방식으로 사용이 가능하다.
:echo 100.1
기대대로 100.1
이 출력된다.
또한 exponential notation
(지수 표기법)을 사용해서 나타낼 수 있다.
지수표기법을 잘 모르겠으면 이 포스트에 정리해 놓았으니 참고
:echo 5.45e+3
-
지수도 마찬가지로 사용 가능
:echo 15.45e-2
양수 지수를 사용할 경우 +
는 생략 가능하다
:echo 1.0e+5
:echo 1.0e5
동일하게 1.0e5
가 출력되는 것을 볼 수 있다.
소숫점(.
)은 필수로 사용해야 한다. 쓰지 않으면 에러가 발생한다.
:echo 1e+3
E15: Invalid expression: 1e+3
에러가 발생한다.
Coercion
Number 형태와 Float 형태를 계산하거나 비교하면 vim은 자동으로 Number를 Float으로 변환한다.
:echo 2 * 2.0
Float으로 변환된 4.0
이 출력된다.
Division
두 Number를 나누면 나머지는 버림된다.
:echo 3 / 2
1.5
가 아닌 1
이 출력되는 것을 볼 수 있다.
만약 소숫점 계산을 하고 싶은 경우에는 둘 중 하나를 float 형태로 사용하여야 한다.
:echo 3 / 2.0
:echo 3.0 / 2
둘 다 1.5
가 출력된다.
Exercises
- Read :help Float. When might floating point number not work in Vimscript?
+float
이 컴파일 되지 않은 경우에는 사용이 불가능하다.:ve
(:version
) 명령어나 vim --version
으로 자신의 vim에 어떤 기능이 컴파일 되었는지 확인이 가능하다.
- Read :help floating-point-precision. What might this mean if you're writing a Vim plugin that deals with floating point numbers?
(무슨 말인지 잘 모르겠다...)
'tools > vim' 카테고리의 다른 글
Learn Vimscript The Hardway - 27: String Functions (0) | 2020.04.04 |
---|---|
Learn Vimscript The Hard Way - 26. String (0) | 2020.04.03 |
지수 표기법 (Exponential notaion) feat. vim: e+01, e-01 (4) | 2020.04.01 |
Learn Vimscript The Hard Way - 24: Functions Arguments (0) | 2020.03.31 |
Learn Vimscript The Hard Way - 23: Functions (0) | 2020.03.30 |