4

只是看看 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> >)

知道我做错了什么吗?

4

2 回答 2

6

.new_file()调用返回一个View对象,因此该.insert()方法接受3 个参数:

insert(edit, point, string)
int
string将给定的缓冲区 插入到指定的point. 返回插入的字符数:如果在当前缓冲区中将制表符转换为空格,这可能会有所不同。

请参阅sublime.ViewAPI 参考

edit参数是一个对象sublime.Edit;您需要调用view.begin_edit()创建一个,然后调用view.end_edit(edit)demarque 可撤消的编辑:

edit = x.begin_edit() 
x.insert(edit, 0, 'Hello')
x.end_edit(edit)

Edit对象是一个标记,用于将编辑分组为可以在一个步骤中撤消的内容。

于 2013-04-16T11:05:40.417 回答
1
>>> x = window.new_file()
>>> e = x.begin_edit()
>>> x.insert(e,0,"Hello")
5
>>> x.end_edit(e)
于 2013-04-16T11:08:31.093 回答