Sublimetext3 使用“;在特定行号处打开文件;打开#u文件”;命令

Sublimetext3 使用“;在特定行号处打开文件;打开#u文件”;命令,sublimetext3,sublime-text-plugin,Sublimetext3,Sublime Text Plugin,我的问题类似于EHQ论坛中的问题 我在我的Default.sublime命令中添加了一些条目来打开文件,例如 { "caption": "File Open: File Name", "command": "open_file", "args": {"file": "/path/to/file.ext"} }, 它们工作正常,但我希望其中一个在特定行号处打开,但找不到正确的符号 这不会在第123行打开文件,而是打开文件路径:/path/to/file.ext:123 { "capti

我的问题类似于EHQ论坛中的问题

我在我的
Default.sublime命令中添加了一些条目来打开文件,例如

{ "caption": "File Open: File Name", 
  "command": "open_file",
  "args": {"file": "/path/to/file.ext"} },
它们工作正常,但我希望其中一个在特定行号处打开,但找不到正确的符号

这不会在第123行打开文件,而是打开文件路径:
/path/to/file.ext:123

{ "caption": "File Open: File Name", 
  "command": "open_file",
  "args": {"file": "/path/to/file.ext:123"} },
他们建议:

尝试将
“标志”:1
添加到参数列表中。API open_文件需要使用标志
ENCODED_POSITION
从文件名中提取行/列,可能是相同的

{ "caption": "File Open: File Name", 
  "command": "open_file",
  "args": {"file": "/path/to/file.ext:123", "flags":1} },
但这也失败了

sublime.py中

def open_file(self, fname, flags=0, group=-1):

打开文件(文件名,)
但是在
args
键中,我们使用
file
而不是
file\u name
&
fname

说明在哪里


如何在不创建新插件的情况下执行此操作?

使用
open\u file
命令确实不会处理文件名末尾带有编码位置的文件名。这个特定的命令是在内核中实现的,而不是在插件中实现的,这意味着不可能内省它的参数,如果您试图用不正确的参数调用它,它也不会生成任何类型的错误。因此,不可能确定是否有某种方法可以使用编码的位置信息来调用它,除非手动尝试参数和值来查看它们的功能,或者要求开发人员提供此类信息(如果不存在,则添加)

API参考用于实际插件;它不会以任何直接的方式与可能存在的同名命令相关联。您在实际API定义中看到的参数通常与所记录的参数不同

这样做的一个原因是,API方法通常是类方法,这意味着当您声明它们时,它们采用了一个隐含的
self
参数,而调用它们时不需要这些参数。此外,由于清晰性、历史原因等原因,参数的文档名称通常与实际名称不同。这方面的一个例子是
文件名
fname
之间的上述差异;除非您使用关键字参数调用该方法,否则这种差异并不重要

有时也会有一些API方法的参数没有被记录下来,这可能有多种原因。上面的
group
参数就是一个例子,它决定了文件在哪个文件组中打开;API允许这样做,但除非您查看适当的文件,否则您不知道可以使用它

这是一个冗长的说法,就我所知,没有办法避免使用插件。你链接的论坛帖子就是一个例子;一个较为简单的例子是:

导入升华
导入升华插件
类OpenFileEncodedCommand(升华插件.WindowCommand):
def运行(自我,文件):
self.window.open_文件(文件,升华编码_位置)
这将实现一个
open\u file\u encoded
命令,允许您向提供的文件名添加
:row
:row:col
。这与上面链接的插件稍有不同,因为它使用显式的
row
col
参数来指定位置


实际上,一个比另一个更重要的是如何指定位置信息。

打开文件的
命令实际上不处理文件名末尾带有编码位置的文件名。这个特定的命令是在内核中实现的,而不是在插件中实现的,这意味着不可能内省它的参数,如果您试图用不正确的参数调用它,它也不会生成任何类型的错误。因此,不可能确定是否有某种方法可以使用编码的位置信息来调用它,除非手动尝试参数和值来查看它们的功能,或者要求开发人员提供此类信息(如果不存在,则添加)

API参考用于实际插件;它不会以任何直接的方式与可能存在的同名命令相关联。您在实际API定义中看到的参数通常与所记录的参数不同

这样做的一个原因是,API方法通常是类方法,这意味着当您声明它们时,它们采用了一个隐含的
self
参数,而调用它们时不需要这些参数。此外,由于清晰性、历史原因等原因,参数的文档名称通常与实际名称不同。这方面的一个例子是
文件名
fname
之间的上述差异;除非您使用关键字参数调用该方法,否则这种差异并不重要

有时也会有一些API方法的参数没有被记录下来,这可能有多种原因。上面的
group
参数就是一个例子,它决定了文件在哪个文件组中打开;API允许这样做,但除非您查看适当的文件,否则您不知道可以使用它

这是一个冗长的说法,就我所知,没有办法避免使用插件。你链接的论坛帖子就是一个例子;一个较为简单的例子是:

导入升华
导入升华插件
类OpenFileEncodedCommand(升华插件.WindowCommand):
def运行(自我,文件):
self.window.open_文件(文件,升华编码_位置)
这将实现一个
open\u file\u encoded
命令,允许您向提供的文件名添加
:row
:row:col
。这与上面链接的插件稍有不同,因为它需要expli
open_file(file_name, <flags>)