只是看看Sublime Text 2以扩展它。我用CTRL'弹出控制台,并试图这样做:
>>> x = window.new_file()
>>> x
<sublime.View object at 0x00000000032EBA70>
>>> x.insert(0,"Hello")
确实打开了一个新窗口,但我的插件似乎不起作用:
Traceback (most recent call last): File "<string>", line 1, in <module> Boost.Python.ArgumentError: Python argument types in
View.insert(View, int, str) did not match C++ signature:
insert(class SP<class TextBufferView>, class SP<class Edit>, __int64, class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >)
知道我做错了吗?
答案 0 :(得分:6)
.new_file()
调用返回了View
个对象,因此.insert()
方法需要 3 个参数:
insert(edit, point, string)
int
将给定的string
插入指定point
的缓冲区中。返回插入的字符数:如果将制表符转换为当前缓冲区中的空格,则可能会有所不同。
请参阅sublime.View
API reference。
edit
参数是sublime.Edit
对象;您需要调用view.begin_edit()
创建一个,然后调用view.end_edit(edit)
以取消可撤消的编辑:
edit = x.begin_edit()
x.insert(edit, 0, 'Hello')
x.end_edit(edit)
Edit
对象是一个令牌,用于将编辑分组为可以在一个步骤中撤消的内容。
答案 1 :(得分:1)
>>> x = window.new_file()
>>> e = x.begin_edit()
>>> x.insert(e,0,"Hello")
5
>>> x.end_edit(e)