我开发了sublime text 3
的插件。并希望获得当前打开的文件路径...
absolute1 = self.window.view.file_name()
...其中self
是sublime_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())
如果self
为sublime_plugin.TextCommand
,我可以毫无问题地获取当前文件路径:
fileName = self.view.file_name()
...但self
必须为sublime_plugin.WindowCommand
,因为我想使用方法open_file
:
self.window.open_file(absolute2)
答案 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 并且它工作得很好