从sublime_plugin.WindowCommand获取当前文件名

时间:2013-10-22 17:51:30

标签: python plugins sublimetext2 sublimetext3

我开发了sublime text 3的插件。并希望获得当前打开的文件路径...

absolute1 = self.window.view.file_name()

...其中selfsublime_plugin.WindowCommand

但失败了:

AttributeError: 'Window' object has no attribute 'view'

插件的完整代码:

import sublime, sublime_plugin
import re, os, os.path

class OpenrelCommand(sublime_plugin.WindowCommand):

    def run(self):
        relative = sublime.get_clipboard()
        absolute1 = self.window.view.file_name()
        absolute2 = os.path.normpath(os.path.join(os.path.dirname(absolute1), relative))
        self.window.open_file(absolute2)

    def is_enabled(self):
        return bool(sublime.get_clipboard().strip())

如果selfsublime_plugin.TextCommand,我可以毫无问题地获取当前文件路径:

fileName = self.view.file_name()

...但self必须为sublime_plugin.WindowCommand,因为我想使用方法open_file

self.window.open_file(absolute2)

3 个答案:

答案 0 :(得分:5)

查看API(http://www.sublimetext.com/docs/3/api_reference.html#sublime.Window)。 self是一个窗口对象。因此,您需要self.window.active_view()来获取视图。

答案 1 :(得分:4)

对于Sublime Text 3,对我有用的命令是:

self.view.window().active_view().file_name()

答案 2 :(得分:1)

对于崇高的Text 3,我认为使用以下内容:

myCompleteName = self.view.file_name()

可以是一个解决方案,我已经尝试使用 sublime_plugin.TextCommand 并且它工作得很好