美文网首页
VIM 脚本语法参考

VIM 脚本语法参考

作者: Zokoo | 来源:发表于2020-09-26 23:37 被阅读0次

    整数

    16进制0x开头,8进制0开头,2进制0b开头。例如:
    0x1f = 017 = 0b11111 = 15

    变量

    变量类型

    s:name 脚本本地变量
    b:name Buffer本地变量
    w:name Window本地变量
    g:name 全局变量
    v:name Vim预定义变量
    a:name 在函数内部,表示参数

    变量释放

    unlet {variable}
    

    变量赋值

    let {variable} = {expression}
    

    条件判断

    if

    if {condition}
           {statements}
    endif
    

    if-else

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

    if-elif

    if {condition}
           {statements}
    elseif {condition}
           {statements}
    endif
    

    循环

    while

    while {condition}
           {statements}
    endwhile
    

    函数

    function {name}({var1}, {var2}, ...)
         {body}
    endfunction
    

    表达式(expression)

    |expr1| expr2
        expr2 ? expr1 : expr1   if-then-else
    
    |expr2| expr3
        expr3 || expr3 ...      logical OR
    
    |expr3| expr4
        expr4 && expr4 ...      logical AND
    
    |expr4| expr5
        expr5 == expr5      equal
        expr5 != expr5      not equal
        expr5 >  expr5      greater than
        expr5 >= expr5      greater than or equal
        expr5 <  expr5      smaller than
        expr5 <= expr5      smaller than or equal
        expr5 =~ expr5      regexp matches
        expr5 !~ expr5      regexp doesn't match
    
        expr5 ==? expr5     equal, ignoring case
        expr5 ==# expr5     equal, match case
        etc.                As above, append ? for ignoring case, # for
                            matching case
    
        expr5 is expr5      same |List|, |Dictionary| or |Blob| instance
        expr5 isnot expr5   different |List|, |Dictionary| or |Blob|
                            instance
    
    |expr5| expr6
        expr6 +  expr6 ...  number addition, list or blob concatenation
        expr6 -  expr6 ...  number subtraction
        expr6 .  expr6 ...  string concatenation
        expr6 .. expr6 ...  string concatenation
    
    |expr6| expr7
        expr7 *  expr7 ...  number multiplication
        expr7 /  expr7 ...  number division
        expr7 %  expr7 ...  number modulo
    
    |expr7| expr8
        ! expr7             logical NOT
        - expr7             unary minus
        + expr7             unary plus
    
    |expr8| expr9
        expr8[expr1]            byte of a String or item of a |List|
        expr8[expr1 : expr1]    substring of a String or sublist of a |List|
        expr8.name              entry in a |Dictionary|
        expr8(expr1, ...)       function call with |Funcref| variable
        expr8->name(expr1, ...) |method| call
    
    |expr9| number              number constant
        "string"                string constant, backslash is special
        'string'                string constant, ' is doubled
        [expr1, ...]            |List|
        {expr1: expr1, ...}     |Dictionary|
        #{key: expr1, ...}      |Dictionary|
        &option                 option value
        (expr1)                 nested expression
        variable                internal variable
        va{ria}ble              internal variable with curly braces
        $VAR                    environment variable
        @r                      contents of register 'r'
        function(expr1, ...)    function call
        func{ti}on(expr1, ...)  function call with curly braces
        {args -> expr1}         lambda expression
    

    相关文章

      网友评论

          本文标题:VIM 脚本语法参考

          本文链接:https://www.haomeiwen.com/subject/fmkcuktx.html