本书出处:http://learnvimscriptthehardway.onefloweroneworld.com/
笨方法学Vimscript面向那些想学会如何自定义Vim编辑器的用户。
这 不是 一个Vim 使用 教程。阅读本书之前你应该适应用Vim编辑文本,并知道一些诸如 "buffer", "window"以及"insert mode"这些术语的含义。
本书大致分为三个部分:
~/.vimrc
可以快速、 方便地定制你的Vim环境。本书版权2013 归Steve Losh所有,非经同意,他人不得出版或作更改。 你可以在没有做任何改动且不从中牟利的前提下分享本书。
本书将一直免费在线阅读。
你可以用8$购买一本电子版(PDF, epub, mobi)。
你可以用20$购买一本纸质版。
你可以用40$购买一本精装版。
可从BitBucket和GitHub获取本书的源码。如果你发下任何错误或感觉某处 可以改善,可以随意提交问题,但是我保留本书的版权,所以,如果你感觉不爽我也能够理解。
程序猿们更喜欢实现自己的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
命令),能够分辨出一些常见的语法陷阱。
祝你好运!
LeftJoin/RightJoin/InnerJoinLeftJoin左关联查询;RightJoin右关联查询;InnerJoin内关联查询;其实我们并不推荐使用Jo...
XSL-FO azimuth 属性 XSL-FO 参考手册定义和用法 azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)。 对文档...
XML DOM length 属性 Comment 对象定义和用法 length 属性返回注释节点中文本的长度(以字符计)。 语法commentNode.length 实例...
JavaScript RegExp + 量词 JavaSript RegExp 对象定义和用法n+ 量词匹配包含至少一个 n 的任何字符串。语法new RegExp("n+")或者...
Video controls 属性 Video 对象实例启用视频控件:document.getElementById(myVideo).controls=true;定义和用法controls 属性设...
Textarea form 属性 Textarea 对象定义和用法form 属性返回对包含该 text area 的 表单的引用。若成功,则该属性返回一个 form ...
HTML canvas miterLimit 属性 Canvas 对象实例以最大斜接长度 5 绘制线条:YourbrowserdoesnotsupporttheHTML5canvastag.JavaScr...