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 нормализует имена команд следующим образом:

  1. снимите суффикс "Command"
  2. отдельные верблюжьи фразы с подчеркиванием

таким образом, DeleteCurrentFileCommand должен вызываться следующим образом: view.run_command("delete_current_file")

С помощью этой команды, я смог запустить ваш плагин точно так, как указано выше в консоли Python.

однако, если бы я попытался запустить view.run_command("DeleteCurrentFile"), затем консоль отобразит пустую строку. Возможно, это привело к идее "я".вид.file_name () возвращал None.