Sublime文本创建新视图

时间:2013-04-16 11:02:38

标签: python sublimetext2

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

知道我做错了吗?

2 个答案:

答案 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)