3

我为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)
4

3 回答 3

6

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

self.view.window().active_view().file_name()
于 2015-07-21T13:22:28.063 回答
5

看看 API ( http://www.sublimetext.com/docs/3/api_reference.html#sublime.Window )。self是一个窗口对象。所以你需要做self.window.active_view()才能获得视图。

于 2013-10-23T06:25:51.737 回答
2

对于 sublime Text 3,我认为使用以下内容:

myCompleteName = self.view.file_name()

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

于 2015-11-07T21:33:06.553 回答