我刚刚发现 vi 中存在标记。你如何使用它,你对它们了解多少?它们对 C++ 开发人员有用吗?
最佳答案
我一直将它们用于:
- 注释掉代码块,
- 复制和移动代码块,
- 将代码块提取和删除到命名缓冲区中,以及
- 编辑:替换为测试 block 。
注释掉:
- 转到要注释掉的代码的第一行,
- 标记它,例如输入
ma
- 走到 block 的末尾
- 输入
:'a,.s/^/#
(或任何您需要的注释字符)
复制和移动:
- 如上标记第一行,
- 转到要复制/移动的 block 的底部
- 输入第二个不同的标记,例如
mb
- 转到要复制 block 的位置并输入
:'a,'bco .
或:'a,'bmo .
以复制或移动 resp.
拉到命名缓冲区:
- 如上标记第一行,
- 转到要拉出的 block 的底部
- enter
:'a,.ya a
会将 block 拉入缓冲区 a 或:'a,.ya A
会将 block 附加到缓冲区的当前内容一个
编辑:在文本 block 中替换:
- 如上标记第一行,
- 转到要替换的 block 的底部
- 输入
:'a,.s/search_string/replace_string/[gc]
它将在您的文本 block 中替换。在最后一个斜杠后添加“g”或“c”将调用通常的全局和确认功能。
编辑: 忘了说了,记得'a
(撇号a)指的是包含标记的行和`a
(反引号a) 引用您标记的行上的字符。
因此 `ad`b
(bactic-a-d-backtic-b) 是一个有用的小片段,用于删除从标记为 'a' 的字符到字符 在标有b的字符之前。
顺便说一下,在 Vim 中,输入 :reg
会给你所有寄存器的内容,包括。你的删除寄存器。
关于c++ - 你如何在 vi 中使用标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505335/