我如何使用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创建代码段的语法,重要的是我在语法高亮中的整个脚本。
但它会引发错误。在哪里我可能错了,有什么建议吗?
答案 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 + "/*")])
这至少是最初的问题。