Vim核心知识列表

这本书是在 Vim 官网上放出的 PDF 书,据官网的说法是这本书是第一本专门讲 Vim 的书。这本书不讲什么:不讲 Vimscript 的语法,不讲怎么制作一个 Vim 插件进行扩展。

这本书主要讲述的是 Vim 的基本用法和概念,看完这本书将了解关于 Vim 的绝大部分操作,理解寄存器、文本对象、宏、可视模式、Ex命令这些概念。同时知道 Vim 各种晦涩的选项的含义。随时随地用 :h 查找 Vim 的文档了解相关的内容,Vim 的文档是一个 Vim 自己定义的专有格式。

我在记录笔记时省略了 GUI 部分的内容,因为我自己在使用 Vim 时基本不会关注这块。如果希望学习 Vimscript 推荐 Learn Vimscript the Hard Way 网站。

  1. vimbook-OPL(1-4) 移动、搜索、标记、多文件
  2. vimbook-OPL(5-7) 窗口、缓冲、可视化模式、块列可视模式、缩进、定位标识符、man、Tags、make编译
  3. vimbook-OPL(8-10) 缩写、映射、排版选项、Ex命令
  4. vimbook-OPL(11-13) 文字排版、自动补全、自动命令
  5. vimbook-OPL(14-16) 命令行参数、备份恢复、挂起和返回
  6. vimbook-OPL(18-20) 文字对象、跳转、算术、改变大小写、正则表达式、寄存器、viminfo文件

阅读全文 “Vim核心知识列表”

vimbook-OPL(28)

CH28 定制 Vim

选项

选项分很多种,有布尔值、数字类型和字符串形式的,不论是哪种形式都可以用 :set option? 来查询选项的值。

布尔选项有以下几种设置:

  • :set option 设置选项
  • :set nooption 关闭选项
  • :set option! 反向选项
  • :set invoption 反向选项
  • :set option& 将选项设为默认值

数字选项有以下方式:

:set option = value 给选项设置值
:set option += value 将值加到选项上
:set option -= value 将值从选项上减去
:set option ^= value 将值乘以选项
:set option& 将选项设为默认值

阅读全文 “vimbook-OPL(28)”

vimbook-OPL(18-20)

CH18 更多基本编辑命令

18.1 word 和 WORD

在 Vim 有两个’单词’,其中 word 表示由字符、数字和下划线等组成,类似于 C 中的标识符。 word 由 ‘iskeyword’ 来指定哪些字符构成一个单词。而 WORD 的中文翻译是字串,就是用空白符分割的任何非空白符序列。Vim 中的移动操作是针对单词的,另外一些则是针对字串的。

word 的定制之所以需要用 ‘iskeyword’ 选项来界定的原因在于,Lisp 语言允许标识符中有’-‘,PHP 中的标识符中允许 ‘$’ 符,特定的文件类型可以指定不同的单词定义,方便做跳转。

值得说明的是 iskeyword 默认的值是 iskeyword=@,48-57,_,192-255 ,此中 @ 表示所有 C 语言中 isalpha() 返回 true 的字符,如果需要 @ 字符本身得用 @-@ 表示。数字可以用 0-9 或者 48-57,超过两位的数字就是 ASCII 码表示。如果要排除某些字符,用 ^ 作为前导字符,如: ^x 排除 x 字符,^a-c 排除 a 到 c 的字符。

‘isfname’ 中的字符集控制 gf 命令判断光标下的字符串是否为文件路径; ‘isident’ 定制的字符集控制 [d 命令查找宏定义; ‘isprint’ 中的字符集控制 \p 元字符所表示的可打印字符。

18.2 跳转命令

绝大数为程序员设计的编辑都会有回跳和前进的功能,当在函数定义之前做跳转或者搜索时可以回到以前的位置。Vim 定义了跳跃栈的概念,调用 :jumps 可以查看当前的跳跃栈。> 字符指示的行表示当前的位置,CTRL-O 将会跳一次跳跃栈,CTRL-I 或者 <TAB> 将前进一次跳跃栈。

阅读全文 “vimbook-OPL(18-20)”