39

假设我有 2 个文件:

foo
bar
baz

123
456
f[want autocomplete here]

如果我输入1第二个文件,Sublime 会建议123. 但如果我输入f它不会有任何建议。foo如果我在第一个文件中,我希望它像它一样建议。

看起来这应该很简单(每个缓冲区都可以自动完成,因此搜索所有缓冲区不会那么难)但我一直无法找到执行此操作的插件。

4

2 回答 2

104

我已经实现了相同的想法并将其发布为一个包,因此可以使用包控制直接从 Sublime 中安装它:

按 ctrl+shift+p(Windows、Linux)或 cmd+shift+p(OS X)打开命令面板。开始输入“安装”以选择“包控制:安装包”,然后搜索 AllAutocomplete 并选择它。

代码在这里:https ://github.com/alienhard/SublimeAllAutocomplete

于 2012-05-30T04:47:53.587 回答
17

我写了一个插件来做到这一点:

import sublime_plugin, sublime

class AutocompleteAll(sublime_plugin.EventListener):

    def on_query_completions(self, view, prefix, locations):
        window = sublime.active_window()
        # get results from each tab
        results = [v.extract_completions(prefix) for v in window.views() if v.buffer_id() != view.buffer_id()]
        results = [(item,item) for sublist in results for item in sublist] #flatten
        results = list(set(results)) # make unique
        results.sort() # sort
        return results
于 2012-02-11T18:22:09.657 回答