在vim里面的python从当前目录获取文件列表

时间:2013-07-14 23:23:18

标签: python vim

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

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

snippet 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 + "/*")])  

endsnippet

不要注意第一行和最后一行,因为它们是使用ultisnips创建代码段的语法,重要的是我在语法高亮中的整个脚本。

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

1 个答案:

答案 0 :(得分: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 + "/*")])

这至少是最初的问题。