官方的Vim python接口文档指出,使用python修改缓冲区非常简单,基本上:
:py import vim
:py vim.current.buffer[0] = "Hello world"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,python会引发异常:
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: bad argument type for built-in operation
Run Code Online (Sandbox Code Playgroud)
只读访问(例如:py print vim.current.buffer[0]工作正常.我在这里遗漏了什么?为什么我不能用python脚本修改vim缓冲区?
[注意:我正在使用最近的Vim 7.3]
对我有用,“Hello World”被插入到缓冲区中。你的vim是用什么编译的+python
我使用的是7.3.162版本
编辑
查看 hg 日志,if_python.c我看到很多与 python 相关的问题,例如这个:
changeset: 2641:b803b2776880
tag: v7-3-062
user: Bram Moolenaar <bram@vim.org>
date: Tue Nov 16 19:26:02 2010 +0100
files: src/auto/configure src/configure.in src/if_python.c src/if_python3.c src/version.c
description:
updated for version 7.3.062
Problem: Python doesn't work properly when installed in another directory
than expected.
Solution: Figure out home directory in configure and use Py_SetPythonHome()
at runtime. (Roland Puntaier)
Run Code Online (Sandbox Code Playgroud)
你用的是哪个版本?