每行超过80个的字符用下划线标示
au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.hs,*.vim 2match Underlined /.\%81v/ |
寄存器
寄存器就是存储文本的地方。常用的「复制」操作就是把文本存储到寄存器,「 粘贴」 操作就是把文本从寄存器中读出来。顺便,在 Vim 中复制的快捷键是 y,粘贴的快捷键是 p。
Vim 为我们提供了如下的寄存器:
| 类型 | 标识 | 读写者 | 是否为只读 | 包含的字符来源 |
|---|---|---|---|---|
| Unnamed | " |
vim | 否 | 最近一次的复制或删除操作 (d, c, s, x, y) |
| Numbered | 0至9 |
vim | 否 | 寄存器 0: 最近一次复制。寄存器 1: 最近一次删除。寄存器 2: 倒数第二次删除,以此类推。对于寄存器 1 至 9,他们其实是只读的最多包含 9 个元素的队列。这里的队列即为数据类型 queue>) |
| Small delete | - |
vim | 否 | 最近一次行内删除 |
| Named | a至z, A至Z |
用户 | 否 | 如果你通过复制操作存储文本至寄存器 a,那么 a 中的文本就会被完全覆盖。如果你存储至 A,那么会将文本添加给寄存器 a,不会覆盖之前已有的文本 |
| Read-only | :与.和% |
vim | 是 | :: 最近一次使用的命令,.: 最近一次添加的文本,%: 当前的文件名 |
| Alternate buffer | # |
vim | 否 | 大部分情况下,这个寄存器是当前窗口中,上一次访问的缓冲区。请参阅 :h alternate-file 来获取更多帮助 |
| Expression | = |
用户 | 否 | 复制 VimL 代码时,这个寄存器用于存储代码片段的执行结果。比如,在插入模式下复制 <c-r>=5+5<cr>,那么这个寄存器就会存入 10 |
| Selection | +和* |
vim | 否 | * 和 + 是 剪贴板 寄存器 |
| Drop | ~ |
vim | 是 | 最后一次拖拽添加至 Vim 的文本(需要 “+dnd” 支持,暂时只支持 GTK GUI。请参阅 :help dnd 及 :help quote~) |
| Black hole | _ |
vim | 否 | 一般称为黑洞寄存器。对于当前操作,如果你不希望在其他寄存器中保留文本,那就在命令前加上 _。比如,"_dd 命令不会将文本放到寄存器 "、1、+ 或 * 中 |
| Last search pattern | / |
vim | 否 | 最近一次通过 /、? 或 :global 等命令调用的匹配条件 |
技巧
1,:%normal A;可以让所有行后都加入分号, 类似的, 可借用这个模式, 输入行后都是., 如:%normal A.
2, 在使用 v 或者 V 选择某段文字后,可以用 o 或者 O 按键跳至选择区域的开头或者结尾。
参考
[1] vim 从入门到精通