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

时间:2017-11-26 15:03:38

标签: vim filenames vi

  1. vimrc文件中的%:r是什么?
  2. :gcc:!gcc之间的区别是什么?
  3. vimrc文件中的%是什么?
  4. 我正在学习vi / vim ......但这对我来说很难。 我想了解有关vimrc操作的信息。我在哪里可以得到它?

    我非常感谢所有答案。

2 个答案:

答案 0 :(得分:7)

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

  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

  4. 看起来你正试图弄清楚类似于:

    的命令
    :!gcc % -o %:r
    

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

    gcc foobar.c -o foobar
    

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

答案 1 :(得分:0)

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