【VIM001】编写第一个vim脚本

  学习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  

时间: 2024-12-25 11:48:11

【VIM001】编写第一个vim脚本的相关文章

[一] 编写第一个 Shell 脚本

什么是 Shell 脚本? 最简单的解释,一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个脚本语言解释器.我们将会看到, 大多数能够在命令行中完成的任务也能够用脚本来实现,同样地,大多数能用脚本实现的操作也能够 在命令行中完成. 虽然我们已经介绍了许多 shell 功能,但只是集中于那些经常直接在命令行中使用的功能. She

编写简单的Shell脚本

在一些复杂的Linux维护工作中,大量重复性的输入和操作不但费时费力,而且容易出错,而编写一个恰到好处的shell脚本程序,可以批量处理.自动化的完成一系列维护任务,大大减轻了管理员的负担 shell脚本基础 1. 编写第一个shell脚本 Linux中的shell脚本是一个特殊的应用程序,介于操作系统内核和用户之间,充当了一个命令解释器的角色,负责接收用户的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果 常见的shell解释器 可通过/etc/shells文件了解当前系统所

转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本

转自:情報官世界 本文结合大量实例阐述如何编写一个shell脚本. 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务. 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bas

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本 

编写一个BAT脚本协助运维人员遇到问题时候调测数据库是否有效连接成功的操作攻略

简单摘要: 1.内网系统出现故障需要排查 2.运维人员不熟悉数据库操作,没法通过连接数据库和执行SQL语句的方式排查数据库及数据是否正常 3.解决方案:编写一个bat脚本,运维人员双击运行即可.   原文链接: http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?id=d861e977-87d1-4ac0-ab63-91dacb9ccc9e 背景说明: 车辆管理系统涉及2台服务器: 101:数据

使用case语句编写一个系统服务脚本

case语句执行流程:case语句可以很好的代替if语句中的多分支结构,使用case分支语句时,有几个值得注意的特点如下所述: case行尾必须是单词"in",每一模式必须以右括号")"结束: 双分号"::"表示命令序列的结束: 模式字符串,可以用方括号表示一个连续的范围,如"[0-9]",还可以使用竖杠"|"表示或,如"A|B". 最后的" *) "表示默认模式,其

vim脚本(一)

优秀的文本编辑器 有这样一则老笑话:如果 Emacs 拥有一款优良的文本编辑器,那么它将是一个优秀的操作系统,相反,如果 vi 拥有一个不错的操作系统,那么它将是一款非常出色的文本编辑器.这个笑话反映了 Emacs 有一个一直比 vi 好的策略优势:一种嵌入式扩展编程语言.实际上,Emacs 用户一直乐于忍受引入了 RSI 的控制问题,并且愿意在 Lisp 中编写他们的扩展,这个事实展示了内置扩展语言的强大优势. 现在,vi 程序员不再需要向 Emacs 的插入式脚本语言投去嫉妒的眼光.我们最喜

(转)Vim 脚本语言

2012 年 10 月 20 日 by name5566 Categories: Computer Science, Tools 参考文献列表: http://vimdoc.sourceforge.net/htmldoc/usr_41.html 本文面向一些有编程经验的人(特别是有 C/C++.Java 等编程经验的人),因此对一些显而易见的知识点未做详细的阐述. Introduction 我们在 Vim 脚本文件中编写 Vim 脚本.常见的 vimrc.Syntax 等文件都是 Vim 脚本文

6,bash入门,for 循环, 编写最简单的脚本

shell 是 一种 控制系统的脚本语言, bash 是 shell语言 的 解释器 中 的 一种,也是 Linux 上 最流行的 的 一种, 不过 shell解释器 有 很多种, 而且 每一种 都有 自己 的 特色, 不 是 完全 一样 的.., 常见shell: sh.csh.tcsh.bash.ksh.dash.zsh bash 常用快捷键: Ctrl+a:    跳转命令行首 Ctrl+e:    跳转命令行尾 Ctrl+u:    删除命令行首至当前光标所在处的内容 Ctrl+k: