Sublime text: как получить имя файла текущего представления
Я пытаюсь написать крошечный плагин для удаления текущего файла и закрытия активного представления. По какой-то причине себя.вид.file_name () всегда возвращает значение None.
Я новичок в Python, и я понятия не имею, почему он не работает так. Согласно ссылка на API file_name () возвращает имя файла текущего представления.
import sublime, sublime_plugin, send2trash
class DeleteCurrentFileCommand(sublime_plugin.TextCommand):
def run(self, edit):
f = self.view.file_name()
if (f is None):
return
send2trash.send2trash(f)
self.view.window().run_command('close')
выход dir (self.view):
['класс','delattr', 'дикт','doc','
1 ответов
по словам страница плагинов неофициальной документации, Sublime Text нормализует имена команд следующим образом:
- снимите суффикс "Command"
- отдельные верблюжьи фразы с подчеркиванием
таким образом, DeleteCurrentFileCommand должен вызываться следующим образом:
view.run_command("delete_current_file")
С помощью этой команды, я смог запустить ваш плагин точно так, как указано выше в консоли Python.
однако, если бы я попытался запустить view.run_command("DeleteCurrentFile")
, затем консоль отобразит пустую строку. Возможно, это привело к идее "я".вид.file_name () возвращал None.