python - 设置vim脚本来执行python文件

标签 python vim scripting

我进行了广泛的搜索,但无法解决这个问题:我正在尝试在 Windows 中编写一个对病原体友好的 python 插件。设置为:

在\vimfiles\bundle\plugin 中,我有一个 myscript.vim,其中包含:

let s:path = fnamemodify(resolve(expand('<sfile>:p')), ':h')

function! Up()
    pyfile my_script.py
endfunction

command Up :call Up()

然后在同一目录中我有 my_script.py:

import vim
vim.current.buffer.append("here I am")

只有当我在 Vim 中加载 myscript.vim 并运行 :so % 时,此设置才有效。我收到错误“没有这样的文件或目录 my_script.py”,但从那时起脚本运行良好。

我在这里收集的是 s:path 行,它设置了 python 脚本调用的路径,在 myscript.vim 中,当我调用该函数时,它不会被处理,但是一旦脚本运行,我就可以使用该路径。

我做错了什么,如何解决这个问题?全部

最佳答案

答案就在这里,在when using "pyfile s:pyscript" it seems vim doesn't interpret "s:pyscript" as a variable中(感谢 https://stackoverflow.com/users/200291/icktoofay )但我乍一看并没有掌握它。

想法是使用命令 pyfile 和路径(包括脚本名称)构建一个字符串,然后执行它:

因此,在函数外部调用:

let s:path = fnamemodify(resolve(expand('<sfile>:p')), ':h') . '\my_script.py

然后在函数内部:

execute 'pyfile ' . s:path

请注意 pyfile 后面有一个空格,因此您实际上是在实际执行之前通过字符串连接“构建”完整命令。

关于python - 设置vim脚本来执行python文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523667/

相关文章:

vim - 有没有一种方法可以在VIM中环绕窗口导航

php - PHP 脚本可以检测套接字是否已关闭吗?

linux - 如何使用新名称制作文件的副本,并在文件名中包含原始文件的时间戳?

vim - 在 Vim 中获取 jsDoc intellisense 的最佳方式是什么

angular - 我没有在 typescript angular7 中获取文本框值

python - 如何基于 Pandas 中的两列进行分组?

python - 神经网络总是优于逻辑回归分类器吗?

python - 如果 django 中重置密码电子邮件链接错误,则页面未找到(404)错误

python - Python中另一个列表的子字符串过滤器列表元素

function - vim脚本(clang_complete)如何完成功能、模板?