在Sublime中设置插入位置

时间:2014-09-08 21:51:04

标签: python sublimetext sublimetext3 sublime-text-plugin

我有一个插件可以打开一个文件,然后在加载时调用

view.run_command("goto_line", {"line": item["Line"]})

在左侧的排水沟中,它似乎转到那条线,因为它的行号在装订线中突出显示,但是该文件中没有插入符号。有没有办法让插入符号开始在那条线上闪烁?

更新:我注意到文件是否已经打开,插入符号出现在该行上,所以只有当你打开一个关闭文件时,插入符不在那里

1 个答案:

答案 0 :(得分:2)

短篇小说:

在开发插件时,我遇到过很多次这个问题。这是为我做的那条线:

self.view.window().open_file("{0}:{1}:{2}".format(full_file_path, line_num, 0), sublime.ENCODED_POSITION)

这将打开full_file_path并跳转到line_num,即使文件尚未打开。

长篇故事:

此行的前几个单词取决于命令类继承的内容。出于我的目的,这一行被放置在一个扩展sublime_plugin.TextCommand的类中。扩展sublime_plugin.TextCommand的类没有直接与window通信的方式。相反,他们引用window作为view对象的方法,该对象是sublime_plugin.TextCommand s的原生对象。 (该方法返回对window对象的引用)。

如果要将此行放在扩展sublime_plugin.WindowCommand的类中,则需要对其进行修改:

self.window.open_file("{0}:{1}:{2}".format(full_file_path, line_num, 0), sublime.ENCODED_POSITION)

注意:没有view个对象,window后面的括号被省略,因为我们不再通过view的方法引用它。

here所示,window()方法“返回对包含视图的窗口的引用”,从而允许我们访问these methods,即使我们没有直接来自{{1} }}

相关问题