搜索结果返回了问答的语气,我不知道如何更好地重新表述,如果重复,请原谅:
我正在使用 Vim 运行 python 脚本。该脚本位于~/path/to/my/script.py
,同一路径中有一个样式表文件。
代码内容打开文件:
f = open('./stylesheet.css', 'r')
s = f.read()
f.close()
如果我像 :!python %
这样从 Vim 运行代码,它将返回: IOError: [Errno 2] No such file or directory: 'stylesheet.css'
看来 Vim 不是从代码位置运行我的代码,而是从/home 或 root 运行?
如何让它在执行过程中使用代码的路径作为根路径?
最佳答案
您可以使用此:lcd %:p:h | !python%
.
简要说明。 lcd 将目录更改为当前正在编辑的文件 - http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file
然后在文件上执行 python 命令。
此命令的一个问题是您当前的目录现在将是(根据您的示例)~/path/to/my/
。您必须执行另一个 :lcd
才能返回当前目录。我无法找到一种方法将所有这些组合到 vim 中的一个命令中。也许其他人可以。
编辑 - 再次将操作方法 cd 回来
(删除了我的复杂方法)
有关简单的解决方案,请参阅下面 ib 的评论。
关于python - 如何从脚本路径运行 Vim shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237256/