【问题标题】:How is current file location calculated in vim? (value of expand('%:p'))vim 中如何计算当前文件位置? (expand('%:p') 的值)
【发布时间】:2014-08-06 23:52:39
【问题描述】:

在使用 YouCompleteMe(显然是绝地)的(优秀)Python 自动完成功能时,有时我突然无法保存,因为 vim 认为我当前文件的路径发生了变化。当我用vim bpython/curtsiesfrontend/repl.py 打开一个文件时,运行

:echo expand('%:p')

给我

/Users/tomb/Dropbox/code/bpython/bpython/curtsiesfrontend/repl.py

但是在我使用完成后,同样的命令给出了

bpython/curtsiesfrontend/repl.py

我无法再保存该文件,因为该路径不存在。 :pwd 在之前和之后给出 /Users/tomb/Dropbox/code/bpython - 所以等式“这个文件的完整目录路径是什么”必须有其他部分。

我想知道应该查看哪些 vim 命令或概念来确定问题。必须有一些正在更改的文件的当前目录的概念(但是vim计算expand('%:p')的值)但我不知道该怎么称呼它。变化的当前目录是什么概念?

【问题讨论】:

  • 这样的事情不应该发生,即使 Vim 的 CWD 改变了。打开一个针对 YouCompleteMe 的问题。
  • @IngoKarkat 我同意这是 YouCompleteMe 的问题 - 我很好奇如何调查它。将编辑问题(并将打开错误,感谢您的建议)

标签: python vim autocomplete


【解决方案1】:

当前文件位置是相对于 Vim 当前路径的,可以用:cd:lcd 设置。

为了确定更改的位置,您可以在:redir 命令旁边使用'verbose' 选项:

redir @a
set verbose=9
<execute the steps to reproduce the issue>
redir end
set verbose&
new
put a

然后搜索“chdir”。增加'verbose' 的值会显示更多信息,但也会使执行每个步骤以重现问题变得更加困难。确定较小的测试过程后,您可以使用更高的 'verbose' 值重复这些步骤。

【讨论】:

  • 我的问题略有不同,现在我不记得是什么了:(但这个答案很有帮助
猜你喜欢
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多