×

vi 命令手册

vi/vim 命令大全

vim 命令手册

Vim 关于Vim 安装Vim 用法Vim 配置vim 配置.vimrc方案vim 配置.vimrc方案1vim 配置.vimrc方案2Vim 文件合并Vim 技巧和建议Vim 插件Vim 参阅

Vimscript 编程参考

Vimscript 前言Vimscript 鸣谢Vimscript 预备知识Vimscript 打印信息Vimscript 设置选项Vimscript 基本映射Vimscript 模式映射Vimscript 精确映射Vimscript LeadersVimscript 编辑你的Vimrc文件Vimscript AbbreviationsVimscript 更多的MappingsVimscript 锻炼你的手指本地缓冲区的设置和映射Vimscript 自动命令Vimscript 本地缓冲区缩写Vimscript 自动命令组Operator-Pending 映射Operator-Pending 更多映射Vimscript 状态条Vimscript 负责任的编码Vimscript 变量Vimscript 变量作用域Vimscript 条件语句Vimscript 比较Vimscript 函数Vimscript 函数参数Vimscript 数字Vimscript 字符串Vimscript 字符串函数Vimscript Execute命令Vimscript Normal命令Vimscript 执行normal!Vimscript 基本的正则表达式Grep 运算符Operator 第1部分Grep 运算符Operator 第2部分Grep 运算符Operator 第3部分Vimscript 列表Vimscript 循环Vimscript 字典Vimscript 切换Vimscript 函数式编程Vimscript 路径Vimscript 创建一个完整的插件Vimscript 基本插件配置方式用Pathogen配置插件Vimscript 检测文件类型Vimscript 基本语法高亮Vimscript 高级语法高亮Vimscript 基本折叠Vimscript 高级折叠Vimscript 段移动原理Vimscript Potion段移动Vimscript 外部命令Vimscript 自动加载Vimscript 文档Vimscript 发布Vimscript 还剩下什么?

Vimscript Abbreviations


Vim有个称为"abbreviations"的特性,与映射有点类似,但是它用于insert、replace和 command模式。这个特性灵活且强大,不过本节只会谈及最常用的用法。

本书只会讲述insert模式下的abbreviations。运行如下命令:

:iabbrev adn and

进入insert模式并输入:

One adn two.

在输入adn之后输入空格键,Vim会将其替换为and

诸如这样的输入纠错是abbreviations的一个很实用的用法。运行命令:

:iabbrev waht what
:iabbrev tehn then

再次进入insert模式并输入:

Well, I don't know waht we should do tehn.

注意 两个 abbreviations的替换时机,第二个没有输入空格却也替换了。

Keyword Characters

紧跟一个abbreviation输入"non-keyword character"后Vim会替换那个abbreviation。 "non-keyword character"指那些不在iskeyword选项中的字符。运行命令:

:set iskeyword?

你将看到类似于iskeyword=@,48-57,_,192-255的结果。这个格式很复杂,但本质上 "keyword characters"包含一下几种:

  • 下划线字符 (_).
  • 所有字母字符,包括大小写。
  • ASCII值在48到57之间的字符(数字0-9)。
  • ASCII值在192到255之间的字符(一些特殊ASCII字符)。

如果你想阅读这个选项格式的 完整 描述,你可以运行命令:help isfname,另外 阅读之前最好准备点吃的。

你只要记住输入非字母、数字、下划线的字符就会引发abbreviations替换。

更多关于abbreviations

Abbreviations不仅仅只能纠错笔误。我们可以加几个日常编辑中常用的abbreviations。 运行如下命令:

:iabbrev @@    steve@stevelosh.com
:iabbrev ccopy Copyright 2013 Steve Losh, all rights reserved.

随意更换我的名字和邮箱地址为你的,然后试试这两个abbreviations吧~

这些abbreviations将你常用的一长串字符压缩至几个字符,省的每次都要那么麻烦。

Why Not Use Mappings? 为什么不用Mappings?


不错,abbreviations和mappings很像,但是他们的定位不同。看个例子:

运行命令:

:inoremap ssig -- Steve Loshsteve@stevelosh.com

这个 mapping 用于快速插入你的签名。进入insert模式并输入ssig试试看。

看起来一切正常,但是还有个问题。进入insert模式并输入如下文字:

Larry Lessig wrote the book "Remix".

注意到Vim将Larry名字中的ssig也替换了!mappings不管被映射字符串的前后字符是什么-- 它只在文本中查找指定的字符串并替换他们。

运行下面的命令删除上面的mappings并用一个abbreviation替换它:

:iunmap ssig
:iabbrev ssig -- Steve Loshsteve@stevelosh.com

再次试试这个abbreviation。

这次Vim会注意ssig的前后字符,只会在需要的时候替换它。

Exercises

在你的~/.vimrc文件中为经常拼写错误的单词增加abbreviations配置。一定要使用 上一章中你创建的mappings来重新打开读取~/.vimrc文件。

为你的邮箱地址、博客网址、签名添加abbreviations配置。

为你经常输入的文本添加abbreviations配置。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)