Vim知多少

Vim的官网

Vim最早在1991年由Bram Moolenaar发布,是Vi的一个改良版, 表示Vi IMproved.

Vi最早在1976年由Bill Joy发布。

Richard Stallman称Vi是魔鬼的编辑器(VI-VI-VI在罗马数字中表示兽名数目)。

Vi的支持者反讽Emacs是一个伟大的操作系统,只缺个体面的编辑器。两者有太多的往事不堪回首。

首页 » Vim » Vim脚本

变量

几种不同的变量:

  • b:name - buffer缓冲区的变量
  • w:name - window变量
  • g:name - 全局变量
  • v:name - Vim预定义变量
  • s:name - 作用域是当前脚本的变量

Vim中有一些特殊变量,包括:

  • % - 当前文件名
  • %< - 当前文件名,去后缀
  • <cword> - 光标所在的单词

测试一下这些简单变量

:echo expand("%")
:!echo %

%/%<更复杂的一些应用,例如我们在~/.vimrc中添加2个函数,并映射到F3/F4,按F3编译程序,按F4运行程序:

func! Compile()
    let type = b:current_syntax
    if type == "c" 
        exec "!gcc -g -o %< %"
    elseif type == "cpp"
        exec "!g++ -g -o %< %"
    endif
endfunc

func! Run()
    let type = b:current_syntax
    echo type
    if type == "c" || type == "cpp"
        exec "!./%<"
    elseif type == "php"
        exec "!php %"
    elseif type == "javascript"
        exec "!node %"
    endif
endfunc

map <F3> :call Compile()<CR>
map <F4> :call Run()<CR>

表达式

数值、字符串都是表达式,其他常见的表达式包括:

  • $name - 环境变量名
  • &name - Vim选项
  • @r - Vim寄存器名
:echo $HOME         查看环境变量$HOME
:echo &ts       查看tabstop选项的值
:echo @u            查看寄存器u的值

参考|expression-syntax|了解Vim表达式语法。

函数

自定义函数:

function! Min(n1, n2)
    if a:n1 < a:n2
        return a:n1
    endif
    return a:n2
endfunction

自定义函数的几个特点:函数名以大写字母打头;函数体内访问参数用a:number的形式;function!的形式可重新定义一个已定义过的函数。可以在Ex中测试,如:

:echom Min(1024,1000)

将输出1000(通过echom而不是echo输出的信息,可以通过:messages查看)。

分享

0