即使直接给定目标路径,Vim 也会打开符号链接

sun*_*ica 9 linux vim symbolic-link

如果我先通过符号链接打开一个文件,然后:bd再尝试直接打开符号链接的实际目标,Vim 就会打开符号链接。我该如何改变这种行为?

在我的例子中,差异很重要,原因有两个:(1)autochdir进入符号链接的目录而不是实际文件的目录,(2) vim-fugitive 仅在 git 存储库中启用自身,并且目标位于存储库中,而符号链接不是。

是否正在进行某种缓存,如果是,我该如何在这种情况下禁用它?

sun*_*ica 9

回答我自己的问题,显然,即使您执行 a 操作:bd,也会存储一些有关文件的临时信息,并且要“真正”从 Vim 内存中删除文件,您必须执行:bw(bufferwipe)。关于符号链接使目标作为符号链接打开的临时信息似乎是 Vim 中的一个错误,但无论如何,再次打开原始符号链接并使用:bw它似乎可以解决这个问题。

  • 重新审视一个老问题,但是@ThomasDickey我不确定我是否遗漏了一些东西或者你遗漏了一些东西。我不明白你的评论中的“如果文件被替换(不使用相同的索引节点)”部分 - 我根本不是在谈论 Vim 替换磁盘上的文件,我的问题和答案是关于 Vim 的内部元数据关于该文件。具体来说,当文件打开时,Vim 在内部看到文件的路径 `%:p`。我不认为这会影响其他程序。 (2认同)
  • 这肯定会导致错误。就像当我想从 git 存储库打开一个“真实文件”时,vim 坚持认为该文件是符号链接版本。来到这里弄清楚我需要做什么 :bw 才能用另一条路径重新打开,非常麻烦,手册上说 :bw :除非您知道自己在做什么,否则不要使用它。 (我不)。 (2认同)