搜索结果返回Q&As的音调,我不知道如何更好地改写,所以请原谅我,如果它是重复的:
我正在用Vim运行python脚本.脚本位于,~/path/to/my/script.py并且在同一路径中有一个样式表文件.
代码的内容打开文件:
f = open('./stylesheet.css', 'r')
s = f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)
如果我像这样从Vim运行我的代码:!python %,它将返回: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评论.