【发布时间】:2020-08-07 02:02:36
【问题描述】:
我正在尝试对 this Sublime Text 3 plugin 做一些小调整,这将是我第一次涉足 Python。
当在键盘中输入命令[[ 时,该插件会提供一个 Markdown 文件列表。问题是其他文件出现在我不想出现的列表中!
根据我收集到的信息,大部分命令都需要os.listdir(directory)。我知道以前曾询问过尝试仅列出带有 os.listdir 的特定扩展名,例如 here 和 here,但我只是不明白如何将这些答案实现到我拥有的代码中.像其他人所寻求的那样,我正在尝试弄清楚如何使用 os.listdir 显示 only .md 文件,但例外是我希望在此插件的范围内这样做.
插件的完整代码可在here 获得。
下面是一段摘录,其中包括我认为与我的困境更相关的细节。
class GetWikiLinkCommand(sublime_plugin.TextCommand):
def on_done(self, selection):
if selection == -1:
self.view.run_command(
"insert_wiki_link", {"args":
{'text': '[['}})
return
self.view.run_command(
"insert_wiki_link", {"args":
{'text': '[['+self.modified_files[selection]+']]'}})
def run(self, edit):
settings = sublime.load_settings('MyWiki.sublime-settings')
directory = settings.get('wiki_directory')
directory = os.path.expanduser(directory)
extension = settings.get('wiki_extension')
self.outputText = '[['
self.files = os.listdir(directory)
self.modified_files = [item.replace(extension,"") for item in self.files]
self.view.window().show_quick_panel(self.modified_files, self.on_done)
谢谢!!!
【问题讨论】:
-
在简要查看“插件的完整代码”之后,我会说您还需要
import os.path。请注意import os不会自动也导入os.path。您正在导入re和subprocess但未在代码中使用这些模块。我想说你需要的是:import sublime, sublime_plugin, os, os.path.
标签: python sublimetext3 sublimetext sublime-text-plugin