python - 如何从脚本路径运行 Vim shell?

标签 python vim

搜索结果返回了问答的语气,我不知道如何更好地重新表述,如果重复,请原谅:

我正在使用 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/

相关文章:

python - 如何捕获使用 python subprocess.checkout() 调用调用的 C++ 程序中发生的异常?

vim - 映射空间键进入插入模式

vim - NERDTree:加星标/粗体文件表示什么?

vim - 为什么 gvim 不能正确设置字体?

vim - 如何在vimscript中获取缓冲区类型

python - VS code python 自动补全非常慢

python - Selenium 在 alpine 3.6 容器上运行

python - Django 中的 Forloop.counter

使用 SQLITE3 的 Pythons Bottle

csv - 在 Vim 中隐藏给定字符之后的部分行