Sublimetext3 使用“;在特定行号处打开文件;打开#u文件”;命令
我的问题类似于EHQ论坛中的问题 我在我的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
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>)