Vim技能修炼降龙十七掌

世界上有两个伟大的编辑器:一个是emacs,一个是vi。它们从诞生以来,一直在Unix/Linux世界得到最广泛的支持。
尽管过了几十年,在Windows平台上和跨平台上有层出不穷的后起之秀不断挑战它们的地位,比如编辑器界的Sublime Text,Ultra Editor,Notepad++,pspad,Atom,Visual Studio Code,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它们的地位从未动摇过。
写C#的最好IDE一定是Visual Studio,写Java还是IntellJ IDEA和Eclipse更方便。但是,对于其它语言和其它任务,比起层出不穷的后来者,一定是emacs和vim的支持是最广泛的。针对一个特定的任务,可能Sublime Text和Atom只有区区几种插件选择甚至是没有,但是在vim和emacs上可以找到好多页。

这两种编辑器的学习曲线确实是相对比较陡的,但是,一旦修炼成功,这样的付出是绝对值得的。造成学习困难的主要原因,其实是功能太多太强大。这个修炼需要花不少的精力和时间,想修成上仙甚至上神是不容易的,但是,只要坚持下去,最终一定可以做到。好了,废话不多说了,我们开始修炼之旅。

Vim技能修炼教程(1) - 使用vundle管理插件
Vim技能修炼教程(2) - 语法高亮速成
Vim技能修炼教程(3) - 语法高亮进阶
Vim技能修炼教程(4) - 基本功
Vim技能修炼教程(5) - 操作符实务
Vim技能修炼教程(6) - 行编辑器
Vim技能修炼教程(7) - 可视模式
Vim技能修炼教程(8) - 多窗口
Vim技能修炼教程(9) - 缓冲区和标签页
Vim技能修炼教程(10) - 代码跳转
Vim技能修炼教程(11) - 代码折叠
Vim技能修炼教程(12) - Vim的脚本语言支持
Vim技能修炼教程(13) - 变量
Vim技能修炼教程(14) - 写个ex命令吧
Vim技能修炼教程(15) - 时间和日期相关函数
Vim技能修炼教程(16) - 浮点数计算函数
Vim技能修炼教程(17) - 编译自己的Vim

时间: 2024-10-25 14:06:11

Vim技能修炼降龙十七掌的相关文章

Vim技能修炼教程(2) - 语法高亮速成

语法高亮速成 我们继续在人间修行Vim技能之旅.上一次我们学习了如何通过vundle安装插件,这次我们迅速向写插件的方向挺进. 我们先学习一个最简单的语法高亮插件的写法. 语法高亮基本上是由三部分组成: 配色方案 正则表达式 配色方案和正则表达式的规则对应关系 简单的三步法写语法高亮 第一步,写匹配的正则表达式 我们举个最简单的例子,以Android的log为例,Android的log格式如下: --------- beginning of system 05-05 17:55:48.909 I

Vim技能修炼教程(1) - 使用vundle管理插件

世界上有两个伟大的编辑器:一个是emacs,一个是vi.它们从诞生以来,一直在Unix/Linux世界得到最广泛的支持. 尽管过了几十年,在Windows平台上和跨平台上有层出不穷的后起之秀不断挑战它们的地位,比如编辑器界的Sublime Text,Ultra Editor,Notepad++,pspad,Atom,Visual Studio Code,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它们的地位从未动摇过. 写C#的最好IDE一定是Visual

Vim技能修炼教程(17) - 编译自己的Vim

编译自己的Vim 前面我们已经对Vim有比较丰富的了解了.我们也知道Vim有很多编译时的选项,很多功能依赖于这些编译选项.其中最重要的就是脚本语言的支持,很多发行版本是不全的.为了支持我们所需要的功能,我们需要编译自己的Vim. 首先我们要下载Vim的源代码: git clone https://github.com/vim/vim.git Linux上编译Vim 以Ubuntu为例,首先要安装一些库的开发包,例: sudo apt-get install libncurses5-dev lib

Vim技能修炼教程(16) - 浮点数计算函数

浮点数计算函数 这一节的所有函数,只有在vim编译时支持了+float时才有效. 三角函数 sin() : sine正弦函数 cos() : cosine余弦函数 tan() : tangent正切函数 asin() : arc sine反正弦函数 acos() : arc cosine反余弦函数 atan() : arc tangent反正切函数 atan2({X坐标},{Y坐标}) : arc tangent反正切函数 sinh() : hyperbolic sine 双曲正弦函数 cosh

Vim技能修炼教程(15) - 时间和日期相关函数

Vimscript武器库 前面我们走马观花地将Vimscript的大致语法过了一遍.下面我们开始深入看一下Vimscript都给我们准备了哪些武器.如果只用这些武器就够了,那么就太好了,只用Vimscript会导致最佳的兼容性.否则不管是用:python还是使用扩展库,都给可移植性带来麻烦. 随着Vim的广泛移植,Vimscript带来的可移植性还是很可观的.这是一门跨相当多平台可用的语言. 之前我们为了区分normal命令和ex命令,在脚本中使用ex命令的前面都加上了":"前缀.从这

Vim技能修炼教程(14) - 写个ex命令吧

写个ex命令吧 我们第二节开始就写了语法高亮的插件.这一节,我们学习第二种插件的写法,就是写个我们自己的ex命令. 自定义ex命令的命令是:command,我们在~/.vim/下建立一个plugin目录,然后创建一个test.vim之类的文件: :function Hello() :echom "Hello,World!" :endfunction :command Hello call Hello() 首先,我们定义一个函数.函数名的首字母必须大写.函数中调用:echom去显示一个字

Vim技能修炼教程(13) - 变量

VimScript变量 上节我们介绍了Python和Ruby来编写Vim插件的方式. 不过,Python和Ruby并不是所有的Vim都支持的功能,如果以最小依赖的原则来说,还是原汁原味的Vimscripts是放置四海Vim而皆灵的方式.当代码规模变大时,Python,Ruby,Perl这些语言的引入将带来较高的效率.但是Vimscripts仍然是最基本的Vim语言,值得我们首先学好. 变量 做为一种脚本语言,Vimscript当然是支持变量的. 不过Vimscript的特色是,显式指定作用域.也

Vim技能修炼教程(11) - 代码折叠

上一讲我们是程序员篇的第一讲,关于代码跳转.代码跳转是一个付出很少收获很大的功能.这一节我们开始一个收获很多,但是付出也相对多一点功能:代码折叠. 代码折叠 折叠的类型 折叠有下面几种类型: Manual: 手动创建折叠.但是退出vim后就一切都没了. Marker: 基于特定的字符组合进行折叠. Expr: 定义正则表达式来处理折叠,这是最终的解决方案. Indent: 这个最简单也最基本,根据缩进来折叠. Syntax: 根据程序语义进行折叠. 我们先看一个例子,左边是采用syntax方式进

Vim技能修炼教程(6) - 行编辑器

在很久很久以前,计算机的运算能力还很弱,终端与主机的通信也不好.在没有显示器的时代,只能通过电传打字机跟主机通信.那时候只有行编辑器,编辑的时候只能在一行中进行.需要显示哪一行,就把哪一行或者哪几行打印出来看. Unix上使用的行编辑器是ed. 这个编辑器至今仍然在Unix/Linux/FreeBSD各系统中存在. ed的增强版是ex. ex最大增强之处就是提供了可以全屏编辑的模式.在ex中输入:visual命令,就会切换到全屏编辑模式.好吧,这就是vi.Vi本质上就是ex编辑器的visual模