上一章讲的东西比较多,完全理解会有点难,所以这一章来点容易的。我们已经学习了如何定义本地缓冲区的映射和设置选项,现在以同样的方式来学习本地缓冲区的缩写。
打开你的`foo`和`bar`这两个文件,切换到`foo`,然后执行下面的命令:
~~~
:iabbrev <buffer> --- —
~~~
在文件`foo`下进入插入模式输入下面的文本:
~~~
Hello --- world.
~~~
Vim会为你将`---`替换为“Hello“。现在切换到`bar`试试。在`bar`中替换不会发生,这是因为我们所定义的缩写被设置为只用于`foo`的本地缓冲区。
## 自动命令和缩写
使用本地缓冲区的缩写和自动命令来创建一个简单的“snippet”系统。
执行下面的命令:
~~~
:autocmd FileType python :iabbrev <buffer> iff if:<left>
:autocmd FileType javascript :iabbrev <buffer> iff if ()<left>
~~~
打开一个Javascript文件然后输入`iff`缩写。然后再打开一个Python文件试试。Vim会依据文件类型在当前行执行合适的缩写。
## 练习
为你经常编辑的文件创建更多的针对不同类型的文件的“snippet”缩写。你可以为绝大多数语言创建`return`的缩写,为javascript创建`function`的缩写,以及为HTML文件创建`“`和`”`的缩写。
将你创建的snippets加入到你的`~/.vimrc`文件中。
记住:最好的学习使用这些snippets的方法是_禁用_之前你做这些事情的方式。执行`:iabbrev <buffer> return NOPENOPENOPE`会_强迫_你使用缩写,这个命令在你输入return的时候不会输出任何东西。为了节省学习的时间,为你刚才创建的snippets都创建一个上面的缩写来_强迫_你使用你创建的snippets。
- 前言
- 鸣谢
- 预备知识
- 打印信息
- 设置选项
- 基本映射
- 模式映射
- 精确映射
- Leaders
- 编辑你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 锻炼你的手指
- 本地缓冲区的选项设置和映射
- 自动命令
- 本地缓冲区缩写
- 自动命令组
- Operator-Pending映射
- 更多Operator-Pending映射
- 状态条
- 负责任的编码
- 变量
- 变量作用域
- 条件语句
- 比较
- 函数
- 函数参数
- 数字
- 字符串
- 字符串函数
- Execute命令
- Normal命令
- 执行normal!
- 基本的正则表达式
- 实例研究:Grep 运算符(Operator),第一部分
- 实例研究:Grep运算符(Operator),第二部分
- 实例研究:Grep运算符(Operator),第三部分
- 列表
- 循环
- 字典
- 切换
- 函数式编程
- 路径
- 创建一个完整的插件
- 旧社会下的插件配置方式
- 新希望:用Pathogen配置插件
- 检测文件类型
- 基本语法高亮
- 高级语法高亮
- 更高级的语法高亮
- 基本折叠
- 高级折叠
- 段移动原理
- Potion段移动
- 外部命令
- 自动加载
- 文档
- 发布
- 还剩下什么?