运行外部python函数作为vim命令

时间:2017-04-22 21:38:23

标签: python vim

我希望有一个目录,其中包含一系列用python编写的vim函数。

我希望能够在我的.vimrc中调用这些函数,并通过:<FuncName>

运行它们

我已经在网上查看了很多资源,虽然如果你的.vimrc中写了python功能很容易,但是我很难引入外部文件。

我有以下文件:

/home/daniel/vim/hey_vim.py

def HeyVim():
    print("Hey Vim")

在我的.vimrc中,我有以下内容:

function HeyVim()

pyfile /home/daniel/vim/hey_vim.py

endfunction

:command HeyVim :call HeyVim()

我还尝试了以下变体:

  • 在vimscript函数中引用文件路径
  • 从命令中删除冒号
  • 要进入hey_vim.py的各种路径扩展
  • 创建快速文件而不是打印以查看它是否只是打印问题
  • 将文件名从hey_vim.py更改为HeyVim.py

当我跑步时:HeyVim,没有任何反应。没有错误,但也没有打印任何内容,并且当该部分存在时,不会创建任何文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在实际状态中:

  • 你的Vim功能如何?它解析您的Python文件。
  • 您的Python文件是什么?它定义一个新的python函数。

因此,当您编写它时运行:HeyVim命令时,只需在上下文中添加一个新的Python函数即可。然后你就可以这样使用它::py HeyVim()

您应该在:pyfile Vim函数之外运行HeyVim(),因此它在Vim初始化过程中运行。然后在你的Vim函数中运行:py HeyVim(),如下所示:

pyfile /home/daniel/vim/hey_vim.py

function HeyVim()
    py HeyVim()
endfunction

command HeyVim call HeyVim()