标签:
学习vim总是看到各路高手都在实现自己的插件,看得我直流口水,也想自己编写vim插件,于是乎我也开干。那就从第一个脚本开始吧,开始掌控自己的vim。
我们首先要问的是从哪里开始学起,我第一步就搜索各种资料,但是搜索归搜索,最终还是要去看文档的。在google的过程中,我发现了下面的帮助命令,就开始了我的学习之路,所谓取人鱼不如取人渔。
:help vim-script-intro :h vim-script-intro
到这个帮助文档的顶部,你会看到这个标题:Write a Vim script,这不正是我想找的东西嘛。下面就来看vim提供的第一个脚本,在写脚本之前,要先新建一个脚本。
~$ touch first.vim
~$ vim first.vim
说明:以:开始的是在vim中输入的命令,以~$开始的是linux下的命令,如果你还没有用linux,那还要去补充一下linux知识哦,本文是基于linux写的哦,当然在windows下使用linux,就显得不够专业了,开玩笑了~~
好了,下面开始写脚本吧,vim提供的第一个示例:
:let i = 1 :while i < 5 : echo "count is" i : let i += 1 :endwhile
“:”可以省略,只有当你执行一个命令的时候才是必须的。脚本写好了,可是怎么执行呢?在vim里面执行下面命令
:source ~/first.vim
~/就是只当前用户的目录了。输出如下:
count is 1 count is 2 count is 3 count is 4
我觉得比较可惜的是教程的编写者居然没有用helloworld!
如果文章到这里就结束了,我也觉得没必要写了,直接看vim的教程就好了,这也是我第一次开始深入学习vim,以前都是知道怎么用就好了。我觉得这里可以更加深入的学习,留着这篇博文将来也好总结了嘛。
我们先来解释一下这段代码。let是将一个值赋给一个变量,即将1赋值给i,一般的语法如下:
:let {variable} = {expression}
我们输入下面命令,来查看let的详细说明:
:h let
还是奉行以文档为主的宗旨,如果哪天你出现一个问题或者需求,google了半天没找到,你就得老老实实的去翻文档了,因为文档是最好的学习资料,胜过了任何教程。
:let {var-name} = {expr1}
将一个表达式的值赋给一个内部变量,{var-name}的类型由{expr1}决定,如果{var-name}不存在,就会新建一个变量。
:let {var-name}[{idx}] = {expr1}
如果{var-name}是一个序列,可以对序列中的某个变量进行赋值,我们新建一个vim脚本:let.vim
let list = [0,1,2,3] "整个序列赋值 echo list let list[0] = 1 + 2 "表达式 let list[1] = 2 let list[2] = 3 * 4 let list[3] = 5/2 echo list echo list[2]
接下来我们看let是如何操作二维序列的
:let {var-name}[{idx1}:{idx2}] = {expr1}
这时候{expr1}可以是一个序列,我们可以给一个序列一个序列的赋值,也可以几个序列同时赋值,可以对其中的一个值进行赋值。
let list1 = [[0,1,2],[3,4,5],[6,7,8]] echo list1 echo list1[0:1] echo list1[0] let list1[0] = [9,10,11] echo list1 let list1[0][0] = 0 echo list1 let list1[0] = [‘ww‘,‘q‘,‘e‘] echo list1
更多let相关的信息,查看vim的帮助文档。
代码托管:https://github.com/solomon5926/vim-script
标签:
原文地址:http://www.cnblogs.com/zhaoxinxing/p/4337288.html