Команда open_file
действительно не обрабатывает имена файлов с закодированной позицией в конце.Эта конкретная команда реализована в ядре, а не в плагине, что означает, что невозможно проанализировать ее аргументы, и она также не генерирует никаких ошибок, если вы пытаетесь вызвать ее с неверными аргументами.Таким образом, невозможно определить, существует ли какой-либо способ вызвать его таким образом, чтобы использовать закодированную информацию о положении, за исключением ручной попытки аргументов и значений, чтобы посмотреть, что они делают, или попросить разработчиков предоставить такую информацию (или добавить ее, если этоне там).
Справочник по API для реальных плагинов;он не связан каким-либо прямым образом с командами, которые могут существовать с таким же именем.Аргументы, которые вы видите в фактическом определении API, обычно отличаются от того, что задокументировано.
Одной из причин этого является то, что методы API, как правило, являются методами класса, что означает, что они принимают подразумеваемый аргумент self
, когда вы объявляете их, которые не нужны при вызове.Кроме того, часто аргументы имеют другое задокументированное имя из-за ясности, исторических причин и так далее.Примером этого является вышеуказанная разница между file_name
и fname
;если вы не вызываете метод с аргументами ключевого слова, это различие не имеет значения.
Иногда существуют также аргументы к методам API, которые не документированы, что может быть по любой причине.Примером этого может служить приведенный выше аргумент group
, который определяет, в какой файловой группе открывается файл;API разрешает это, но если вы не посмотрите на соответствующий файл, вы не сможете использовать его.
Это долгий способ сказать, что, насколько я знаю, естьнет способа обойти необходимость использовать плагин для этого.Один из сообщений на форуме, на который вы ссылаетесь, является одним из примеров этого;пример, который может быть несколько проще:
import sublime
import sublime_plugin
class OpenFileEncodedCommand(sublime_plugin.WindowCommand):
def run(self, file):
self.window.open_file(file, sublime.ENCODED_POSITION)
Это реализует команду open_file_encoded
, которая позволяет вам добавлять :row
или :row:col
к имени файла, которое вы предоставляете.Это немного отличается от плагина, связанного выше, в том, что для определения позиции требуются явные аргументы row
и col
.
На практике один над другим все сводится к тому, как вы хотите указать позициюинформация.