c++ - 你如何在 vi 中使用标记?

标签 c++ c vim

我刚刚发现 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/

相关文章:

c++ - bullet 3d 中的滚动摩擦表现不像演示

c++ - 无法在枚举中声明 "div"

c++ - 这是快 : returning a value by function OR saving the value in arguments/parameters

C - volatile 指针的使用

python - Vim pymode 在异步函数定义上抛出 "invalid syntax"错误

c++ - 初始化一个线程,它是构造函数内部的成员变量

c - 如何在物理内存中指定变量位置?

c - 如何使用 SIGSEGV 而不是 SIGABRT 退出?

vim - 将所有 vim 缓冲区保存到新目录

vim - VIM插入模式下跳出引号?