在Vim中,什么是;备用文件";?

在Vim中,什么是;备用文件";?,vim,Vim,我刚刚在Vim中运行了:help registers,注意到#“包含备用文件的名称” 我看到了一个重命名文件的示例,如下所示: " Save the current file, foo.txt, as bar.txt :w bar.txt " Start editing bar.txt :e# 显然,在这种情况下,您刚才保存的文件是“备用文件” 有人能给我一个“备用文件”的更一般的定义吗?您还可以用它做什么?备用文件是在当前窗口中最后编辑的文件。实际上,当您使用某个命令打开一个新的缓冲区时,如

我刚刚在Vim中运行了
:help registers
,注意到
#
“包含备用文件的名称”

我看到了一个重命名文件的示例,如下所示:

" Save the current file, foo.txt, as bar.txt
:w bar.txt
" Start editing bar.txt
:e#
显然,在这种情况下,您刚才保存的文件是“备用文件”


有人能给我一个“备用文件”的更一般的定义吗?您还可以用它做什么?

备用文件是在当前窗口中最后编辑的文件。实际上,当您使用某个命令打开一个新的缓冲区时,如果显示的缓冲区具有与其关联的文件名,则该文件名将被记录为备用文件名


请参见
:help alternate file

我在缓冲区上下文中使用它返回到我正在编辑的最后一个缓冲区

vim foo bar 
:n 
:e#

在这种情况下,我总是将“备用文件”解释为“以前的文件”,因此这是一种跳回您正在编辑的缓冲区的简便方法。

对于。。。 以我刚才看到的文件名粘贴到当前文件中

您可以在插入模式下使用
#
,或在正常模式下使用
“#p

对…没什么用处。。。 在两个文件之间来回跳跃。这项工作做得很好,但这只是我通常不需要做的事情

即使在给出的示例中,我也可能使用
:saveas bar.txt

例如: 假设你正在做一点C编程,想调用某个函数。你记不起函数的名称,所以你在当前位置
mA
上做一个标记,然后使用标记或grep跳转到几个不同的文件中,找出函数声明的位置和实际调用的内容

啊-找到了。您可以复制名称并返回标记
yiw'A

哦-我们还需要#包含文件!简单-只需使用备用文件名寄存器将文件名粘贴到…
Gi#include“#”

很高兴您已经避免了不得不返回函数声明并通过:let@“=@%或类似方式复制文件名的干扰

在文件之间跳转时,我更愿意做什么:
  • 当编辑两个文件时,分割它们可能更容易,所以您可以同时在屏幕上显示这两个文件。如果我正在编辑两个文件,我通常会以某种方式比较它们
  • 通常我对1-3个文件感兴趣(如果更多,我会感到困惑)。我经常跳入或直接打开许多其他文件。在这种情况下,标记感兴趣的文件或遍历跳转列表通常是解决问题的方法
  • 如果您在编辑C/C++时在文件和文件头之间切换,请使用插件!这样会方便得多

我倾向于在选项卡中编辑多个文件-也许备用文件更常用于缓冲区?oops-我想在超级用户上问这个问题。仍然可以将问题从这里迁移到那里吗?仍然可以迁移,但这并不是离题。stackoverflow.com常见问题解答:“如果您的问题通常涉及……程序员常用的软件工具……那么您就可以提出您的问题了!”“在C++源代码与头文件>代码n>之间的本地切换方式:e%:P:S,.h $,.x123x,:s,.CPP $,.h,,s,.x123x $,.cp,,如果你没有VIMRC HIT,或者你不使用C来映射,您可以使用
:e%:r.h
%:r.c
:e%:r.cpp
进行合理方便的切换,而无需配置。是的,但是为什么呢?已经有了一个针对
:e#
的经过精心设计且更便携的命令,即
CTRL-^