2

我将如何使用 python 脚本与 vim 进行通信..

使用 ultisnips 插件,我可以选择在片段定义中包含 shell 脚本或 python 脚本!p,例如用于 python。现在,我要做的是获取当前目录中的文件列表并将它们放在<files>标签之间。像这样的东西。

片段 lsf

!p 
import glob
cwd = vim.eval("getcwd()")  # or maybe vim.eval("expand('%:h')")
snip.rv = "\n".join([ "\t<files>%s</files>" % file for file in glob(cwd + "/*")])  

结束片段

不要注意第一行和最后一行,因为它们是使用 ultisnips 创建片段的语法,重要的是我在语法突出显示中拥有的整个脚本。

但它会引发错误。我可能在哪里错了,有什么建议吗?

4

1 回答 1

1

您只是导入了 glob 模块而不是 glob 函数,并尝试将该模块作为函数调用。

!p 
from glob import glob #Change this line as shown
cwd = vim.eval("getcwd()")  # or maybe vim.eval("expand('%:h')")
snip.rv = "\n".join([ "\t<files>%s</files>" % file for file in glob(cwd + "/*")])

这至少是最初的问题。

于 2013-07-14T23:44:22.633 回答