如果您想执行一些python调用而不用python解释器编译vim(这将使您可以用Python编写插件,而且Omnicomplete也需要它),可以尝试以下方法:
:.!python -c "import os; print os.getcwd()"
这样可以告诉您驱动器中的位置(当前路径)。
现在让我们从一个空文件开始编号几行,以便我们可以轻松看到结果:
:.!python -c "for i in range(1,101): print i"
(vim从1到0的数字行)现在我们只有每行直到100行的编号。
现在让我们在当前路径中放置一个小脚本(如上所示)并运行它,看看它是如何工作的。 让我们复制粘贴这个愚蠢的。 实际上,您会发现执行每行输出一行脚本的脚本非常有用,但是您不必这样做,因为此脚本显示:
print "hi"
try:
while True:
i=raw_input()
print "this was:",i
except EOFError:
print "bye"
因此,您可以调用,例如(假设您将其称为“ what.py”):
:10,20!python what.py
(请注意,文件名的制表符补全有效,因此您可以验证它是否在路径中)
如您所见,每一行都作为标准输入送入脚本。 首先,它输出“ hi”,在末尾“ bye”之间,对于每行,您输出的“ this was:”加上该行。 这样,您可以逐行处理。 注意,您可以比逐行处理更复杂的工作,实际上可以考虑先前的行。 对于这些东西,我宁愿导入sys并按以下方式进行:
import sys
print "hello"
for i in sys.stdin.readlines():
i = i.rstrip("\n") # you can also prevent print from doing \n instead
print "here lyeth",i
print "see you"
希望能有所帮助。