> 本书出处:http://learnvimscriptthehardway.onefloweroneworld.com/
[笨方法学Vimscript](http://learnvimscriptthehardway.stevelosh.com/)面向那些想学会如何自定义[Vim](http://www.vim.org/)编辑器的用户。
这 _不是_ 一个Vim _使用_ 教程。阅读本书之前你应该适应用Vim编辑文本,并知道一些诸如 "buffer", "window"以及"insert mode"这些术语的含义。
本书大致分为三个部分:
* 第一部分讲述了一些Vim的基本命令,通过这些命令修改你的`~/.vimrc`可以快速、 方便地定制你的Vim环境。
* 第二部分将Vimscript作为一门编程语言做深入了解,包括变量、比较还有函数。
* 第三部分实例创建一个插件。
本书[版权](http://learnvimscriptthehardway.stevelosh.com/license.html)2013 归Steve Losh所有,非经同意,他人不得出版或作更改。 你可以在没有做任何改动且不从中牟利的前提下分享本书。
本书将一直免费在线阅读。
你可以用8$购买一本[电子版(PDF, epub, mobi)](http://leanpub.org/learnvimscriptthehardway)。
你可以用20$购买一本[纸质版](http://bit.ly/lvsthw-paperback)。
你可以用40$购买一本[精装版](http://bit.ly/lvsthw-hardcover)。
可从[BitBucket](http://bitbucket.org/sjl/learnvimscriptthehardway/)和[GitHub](http://github.com/sjl/learnvimscriptthehardway/)获取本书的源码。如果你发下任何错误或感觉某处 可以改善,可以随意提交问题,但是我保留本书的版权,所以,如果你感觉不爽我也能够理解。
程序猿们更喜欢实现自己的idea。
idea形成算法,而算法又发展为算法,并使 _idea成真_
作为一个程序猿,我们使用文本编辑器记录我们的idea,并为写程序实现它。全职的程序猿 一生中的千分之十的时间都是在和他的文本编辑器打交道,这期间他们的所做的事情包括:
* 将他们的灵感记录到计算机上
* 重新考虑并修改灵感中的错误
* 用代码实现他们的灵感
* 写文档记录某功能是如何及为什么那么实现
* 与其他的程序猿交流这个经验
Vim是一个功能相当强大的编辑器,当然,前提是你需要根据你的工作、喜好以及习惯定制 它。本书将向你介绍Vimscript,一门用于定制Vim的脚本语言。读完本书你将能够定制 Vim使其更加适应你的文本编辑需求,以后再使用Vim将有更好的体验。
同时我也会提到一些与Vimscript关系不大的点,但那些内容通常都能加强你对Vimscript的认知。 如果你一天仅很少的时间使用Vim,学习Vimscript对你没有多大意义,所以请慎重考虑并平衡你的时间。
本书的写作风格与其他多数的编程书籍略有不同。本书将引领你敲写命令并查看其背后的奥秘 ,而不是仅仅简单的告诉你Vimscript是如何工作的。
有时本书会带你进入死胡同,然后才会给你解释解决问题的"正确方法"。其他的书籍通常不这么做, 或者仅仅在解决问题 _之后_ 提到其中的技巧。然而这并不是现实世界中事情的进展顺序。 你时常会快速写一些Vimscript的代码段,运行却遇到不明缘由的故障。细致研读此书,不要 局限于浏览,读完之后再次遇到上述问题你将能够顺利解决了。熟能生巧嘛!
本书的每一章节都只讲述一个主题。每一章节都内容简短而信息丰富,所以不要跳过任何章节。 如果你真想从本书中学到东西,你要动手敲写所有的命令。可能你已经是一个经验丰富的程序猿, 能够快速阅读并理解代码的含义。但是不要掉以轻心,学习Vim/Vimscript有个与其他普通程序 语言更加不同的体验。
你需要 **敲写 _所有的_ 命令**
你需要 **完成 _所有的_ 练习**
两个理由解释上述内容的重要性!第一,Vimscript语言是一门古老的语言,其设计难免存在一些 不妥之处。一个简单的配置项就可影响整个脚本的功能。敲写 _每个_ 章节遇到的 _每个_ 命令 ,完成 _每个_ 练习,你就会发现很容易地发现并修复遇到的问题。
第二,Vimscript其实 _就是_ Vim命令。在Vim中,保存一个文件使用命令`:write`(或者缩写 `:w`)并回车确认。在Vimscript中,使用`write`实现文件保存功能。Vimscript中的许多 命令都可用于日常文件编辑工作,必须勤加练习以记住那些命令才会有用, 仅仅是看过是无法运用自如的。
我希望本书能够对你有所帮助。本书 _不是_ 一本对Vimscript的综合指南。本书试图让你 掌握Vimscript,能够利用它定制你的Vim环境,为其他用户编写一些简单的插件, 能够阅读他人的代码(利用`:help`命令),能够分辨出一些常见的语法陷阱。
祝你好运!
- 前言
- 鸣谢
- 预备知识
- 打印信息
- 设置选项
- 基本映射
- 模式映射
- 精确映射
- Leaders
- 编辑你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 锻炼你的手指
- 本地缓冲区的选项设置和映射
- 自动命令
- 本地缓冲区缩写
- 自动命令组
- Operator-Pending映射
- 更多Operator-Pending映射
- 状态条
- 负责任的编码
- 变量
- 变量作用域
- 条件语句
- 比较
- 函数
- 函数参数
- 数字
- 字符串
- 字符串函数
- Execute命令
- Normal命令
- 执行normal!
- 基本的正则表达式
- 实例研究:Grep 运算符(Operator),第一部分
- 实例研究:Grep运算符(Operator),第二部分
- 实例研究:Grep运算符(Operator),第三部分
- 列表
- 循环
- 字典
- 切换
- 函数式编程
- 路径
- 创建一个完整的插件
- 旧社会下的插件配置方式
- 新希望:用Pathogen配置插件
- 检测文件类型
- 基本语法高亮
- 高级语法高亮
- 更高级的语法高亮
- 基本折叠
- 高级折叠
- 段移动原理
- Potion段移动
- 外部命令
- 自动加载
- 文档
- 发布
- 还剩下什么?