python - 在 Sublime 中设置插入符位置

标签 python sublimetext sublimetext3 sublime-text-plugin

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

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

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

更新:我注意到,如果文件已经打开,插入符号就会出现在该行上,因此只有当您打开一个关闭的文件时,插入符号才会不存在

最佳答案

短篇故事:

我在开发插件时多次遇到这个问题。这是为我完成的行:

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 作为 view 对象的方法,该对象是 sublime_plugin.TextCommand 的原生方法。 (该方法返回对 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() 方法“返回对包含 View 的窗口的引用”,从而允许我们访问 these methods即使我们不是直接继承自 sublime_plugin.WindowCommand

关于python - 在 Sublime 中设置插入符位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733672/

相关文章:

python - 2d numpy 数组,使每个值成为它以其为中心的 3x3 正方形的总和

python - BeautifulSoup 响应错误

python - 为什么 expmod 的这两个实现对于大值不同?

python - Sublime Text 删除 python 新属性自动完成

ruby-on-rails - Sublime Text 2 : How to set up consistent syntax highlighting for Guardfile?

vim - 如何更改 Sublime Text 3 中的自动完成选择键?

sublimetext3 - 如何在没有软件包控制的情况下安装sublime软件包?

python - 从 tar.gz 安装带有额外包含的 python pip 包

regex - 如何使用Sublime Text的 "Find in Files"查找包含多个不同字符串的文件?

r - 在 Sublime Text 3 中使用 R : Shortcut