vimrc 文件中的 "%:r" 是什么?

What is "%:r" in vimrc file?

  1. vimrc 文件中的 %:r 是什么?
  2. :gcc:!gcc 有什么区别?
  3. vimrc 文件中的 % 是什么?

我正在学习vi/vim...但是这对我来说很难。 我想要有关 vimrc 操作的信息。我在哪里可以买到??

非常感谢所有的回答。

让我们按顺序回答你的问题…

  1. :gcc:!gcc有什么区别?

    :something 是一个 ex 命令。您可以在 :help ex-cmd-index 下找到可用 ex 命令的完整列表,并使用 :help :something.

    查找有关特定命令的帮助

    :gcc 不是现有的 ex 命令。

    :!something 调用外部命令 something 所以 :!gcc 会调用 gcc.

  2. vimrc文件中的%是什么?

    这不是您 vimrc 的任何特定内容。当用作外部命令的参数时,它表示当前文件名。假设当前文件名为 foobar.c:!gcc % 在传递给 shell.

    之前扩展为 gcc foobar.c

    参见 :help c_%

  3. vimrc文件中的%:r是什么?

    同样,这不是您 vimrc 的任何特定内容。 :r 是应用于当前文件名的文件名修饰符。假设当前文件名为 foobar.c%:r 将扩展为 foobar.

    参见 :help filename-modifiers

您似乎在尝试理解类似于以下命令的命令:

:!gcc % -o %:r

再次假设当前文件名为 foobar.c,应该扩展为:

gcc foobar.c -o foobar

在被发送到您的 shell 之前……并在您的 foobar.c 旁边生成一个 foobar 可执行文件。

  1. 在解释 %:r 之前,我们需要知道 % 指的是什么。 vim 命令中的“%”符号指的是当前文件。例如,如果你想写一个 vim 命令来编译当前文件,它说是一个 cpp 文件,那么你会做类似 g++ -o %:r.out 的事情。这里的 % 指的是您正在使用的当前文件。
  2. :gcc 表示您正在尝试 运行 vim 编辑器中的命令,而 :!gcc 表示您在感叹号后键入的任何内容都将是 运行在您的终端中。
  3. 解释了 % 那么现在 :r 是什么?好吧,:r 用于读取另一个文件 %:r 的内容。其中 %:r.out 指的是仅通过在 %(current) 文件名称末尾附加 .out 来重命名的文件。 因此,如果您执行类似 :!./%r.out 的操作,那么此 runs/executes 您已经创建的编译文件。