vim script 筆記

Vim Script
為一組 Ex 命令組成

Ex 命令
為 vim 的 normal mode 中,打 ":" 起始的命令

:while 命令 - 迴圈
語法:
:while {condition}
{statement}
:endwhile

資料型態
vim 僅有二種資料型態,數字及字串。

三種數字實字型態
十六進位實字
語法:
{hexadecimal literial}=0x[1..9abcdef][0..9abcdef]*
八進位實字
語法:
{octal literial}=0[1..7][0..7]*
十進位實字
語法:
{decimal literial}=[1..9][0..9]*
注意:前面不可前置 0 這個數字,否則會視為 8 進位

數學運算式
{add}={variable}+{variable}
{minus}={variable}-{variable}
{multiply}={variable}*{variable}
{divide}={variable}/{variable}
{modula}={variable}%{variable}

例子:
:echo 1*3
3

字串實字
{double-quote-string-literal}="[a..zA..Z0..9]*"

字串相連
{string-concatenate}={string}.{string}

ex.
:echo "foo"."bar"
foobar


變數
:let 命令 - 設值給變數,都是全域變數的
語法:
:let {variable}={expression}

例子:
:let i=1
:echo "i is" i
vim 會印出 i is 1

:let
vim 會印出所有的全域變數

變數種類
s:var -
草稿檔變數
{script-local-variable}=s:{variablename}
僅作用於目前的草稿檔,
若用 source 匯入的草稿變數,
雖同名,但有不同的值

{buffer-local-var}=b:{varname}
{window-local-var}=w:{varname}
{global-var}=g:{varname}
{vim-var}=v:{varname} - vim 預定變數

清除變數
{clear-var}=unlet[!] {variable}

判斷變數是否已定義
boolean exist(string varname)
判斷變數名為 varname 是否有定義


表示式
{enviroment-variable}=$NAME
{option}=&name
{register}=@r

絛件表示式

{expr}?{expr}:{expr}
a?b:c
若 a 為真,則 b,反之為 c

:let i=4
:echo i>5:"i is big":"i is small"
i is small

:if {condition}
{statements}
:endif

:if {condition}
{statements}
:else
{statements}
:endif

:if {condition}
{statements}
:elseif{condition}
{statements}
:else
{statements}
:endif

比較運算子
a==b

ex.
:if 0 == "one"
: echo "yes"
:endif
yes

因為 "one" 不是數字,故為 0

a!=b
a> b
a>=b
a< a="~b" style="font-weight: bold;">:excute str -直譯傳入字串
:execute "tag " . tag_name
直譯器的直譯

:normal str -將傳入字串以 normal mode 直譯

留言

這個網誌中的熱門文章

浴室水龍頭切換拉桿維修

【麵】的倉頡碼

投資現況