没有合适的资源?快使用搜索试试~ 我知道了~
首页Vimscript的经典教程
资源详情
资源评论
资源推荐
前言
程序猿们更喜欢实现自己的 idea。
idea 形成算法,而算法又发展为算法,并使 idea
成真
作为一个程序猿,我们使用文本编辑器记录我们的 idea,并为写程序实现它。全
职的程序猿 一生中的千分之十的时间都是在和他的文本编辑器打交道,这期间
他们的所做的事情包括:
o 将他们的灵感记录到计算机上
o 重新考虑并修改灵感中的错误
o 用代码实现他们的灵感
o 写文档记录某功能是如何及为什么那么实现
o 与其他的程序猿交流这个经验
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 命令),能够分辨出一些常
见的语法陷阱。
祝你好运!
鸣谢
首先,我要感谢 Zed Shaw 帮助我写作[笨方法学 Vimscript][]并使之免费。 本
书的写作格式及写作风格即受其激发。
同时感谢下列来自 Github 或 Bitbucket 的用户:
o aperiodic
o billturner
o chiphogg
o ciwchris
o cwarden
o dmedvinsky
o flatcap
o helixbass
o hoelzro
o jrib
o lheiskan
o lightningdb
o manojkumarm
o manojkumarm
o markscholtz
o marlun
o mattsacks
o Mr-Happy
o mrgrubb
o NagatoPain
o nathanaelkane
o nielsbom
o nvie
o Psycojoker
o riceissa
o rodnaph
o rramsden
o sedm0784
o sherrillmix
o tapichu
o ZyX-I
还有来自更多人的帮助,就不在此一一列举
预备知识
阅读本书之前,请确保您的机器已经安装了最新版的 Vim,本书写作时 Vim 的
最新版本是 7.3。 新版本的 Vim 会向后兼容,所以本书中的内容在 7.3 之后的
版本中应该同样有效。
本书中的内容通用,你可以任意选择 console Vim 或者是 gVim、MacVim 之类
的 GUI 作为你的终端。
你最好习惯用 Vim 编辑文件。至少应该知道 Vim 的基本术语,如"buffer"、
"window"、 "normal mode"、"insert mode"、"text mode"。
如果你当前不符合上述的条件,建议你阅读命令 vimtutor 的内容、使用 Vim 一
两个月,当你 熟练使用 Vim 后再阅读本书。
你需要有一些编程经验。如果没有,建议先阅读《笨方法学 Python 》,读完之
后再阅读本书。
译者注
:
原文提到的《笨方法学
Python
》是英文的,有问题的读者可以选择
阅读
gastlygem
翻译的中文版《笨方法学
Python
》
创建 Vimrc 文件
如果你已经清楚~/.vimrc 的作用并已经有了这个文件,直接跳到下一章继续吧。
~/.vimrc 文件包含了 Vimscript 代码,每次启动 Vim 时,Vim 都会自动执行其
中的代码。
在 Linux 和 Mac OS X 中,这个文件位于你的 home 文件夹,并以.vimrc 命名。
在 Windows 中,这个文件位于你的 home 文件夹,并以_vimrc 命名。
在
任意
系统中,在 Vim 中执行:echo$MYVIMRC 命令可以快速得知这个文件的位
置和名称。 文件的路径会在屏幕的底部显示。
如果你的 home 文件夹没有这个文件,请自行创建一个。
打印信息
Vimscript 中,我们最先关注的是 echo 和 echom 命令。
你可以在 Vim 中执行:helpecho 和:helpechom 命令以查看其帮助文档。读完
本书之后, 再次遇到新的命令时,你应该先执行:help 命令查看其帮助文档。
执行如下命令,体验 echo 命令:
:echo"Hello,world!"
你应该会在屏幕的底部看到 Hello,world!被打印出来。
还是打印消息
现在执行如下命令,体验 echom 命令:
:echom"Helloagain,world!"
你应该会在屏幕的底部看到 Helloagain,world!被打印出来。
执行如下命令,查看上述两个打印命令的区别:
:messages
你应该会看到一些消息。Hello,world!应该
不在
其中,但是 Helloagain,
world!
在
。
当你写更为复杂的 Vimscript 时,你可能会想"打印一些信息"以方便调试程
序。:echo 命令 会打印输出,但是一旦你的脚本运行完毕,那些输出信息就会
消失。使用:echom 打印的信息 会保存下来,你可以执行:messages 命令再次查
看那些信息。
注释
继续之前,咱们先看看如何添加注释。当你写 Vimscript 脚本时(在你的~/.vimrc
文件中或 其它任意文件),你可以通过"字符添加注释,例如:
"Makespacemoreuseful
nnoremap<space>za
这个注释方法并不
总是
有效(这就是 Vimscript 令人无语的一点),但是更多的情
况这个方法是 可以正常工作的。以后我们会谈到什么情况、为什么这个方法会
无效。
练习
阅读:helpecho 帮助文档。
阅读:helpechom 帮助文档。
阅读:helpmessages 帮助文档。
添加一行代码到你的~/.vimrc 文件中,使得每个打开 Vim 时都会显示一个可爱
的 ASCII 字符猫(>^.^<)。
设置选项
Vim 拥有很多选项可以设置以改变其展现方式。
主要有两种选项:布尔选项(值为"on"或"off")和键值选项。
布尔选项
执行如下命令:
:setnumber
如果之前屏幕左侧没有显示行号,那么现在你就会看见行号。执行命令:
:setnonumber
行号应该消失。number 是一个布尔选项:可以 off、可以 on。通过:setnumber
命令打开、 :setnonumber 命令关闭。
所有的布尔选项都是这种配置方法。:set<name>打开选项、:setno<name>关闭
选项。
切换布尔选项
你可以"切换"布尔选项的值,即从开启切为关闭或从关闭切为开启。执行命令:
:setnumber!
行号会再次显示出来。再次执行命令:
:setnumber!
行号应该会再次消失。添加一个!(感叹号)至布尔选项后面就会切换对于选项
的值。
查看选项当前值
你可以使用一个?符号向 Vim 获取一个选项的当前值。执行如下命令并查看每个
命令的 返回结果:
:setnumber
:setnumber?
:setnonumber
剩余145页未读,继续阅读
pjy717
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0