2012-01-31 26 views
38

Nói rằng tôi có 2 file:Sublime Văn bản 2 - Auto-complete/đề nghị từ các tập tin khác

foo 
bar 
baz 

123 
456 
f[want autocomplete here] 

Nếu tôi gõ 1 trong file thứ 2, Sublime sẽ đề nghị 123. Nhưng nếu tôi gõ f nó sẽ không gợi ý gì cả. Tôi muốn nó đề xuất foo giống như nếu tôi ở trong tập tin đầu tiên. Có vẻ như điều này nên đơn giản (mỗi bộ đệm có thể tự động hoàn thành, vì vậy việc tìm kiếm tất cả chúng không thể quá khó) nhưng tôi chưa thể tìm thấy một plugin thực hiện điều này.

+0

Các bạn đã thử hỏi tại [Diễn đàn] (http://www.sublimetext.com/forum/)? Tôi nghĩ rằng tôi đã nhìn thấy câu hỏi đó trước đó. –

Trả lời

16

Tôi đã viết một plugin mà thực hiện điều này:

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 
98

Tôi đã thực hiện ý tưởng giống nhau và công bố nó như là một gói phần mềm để nó có thể được cài đặt trực tiếp từ bên trong Sublime với kiểm soát trọn gói:

Press ctrl + shift + p (Windows, Linux) hoặc cmd + shift + p (OS X) để mở Command Pallete. Bắt đầu nhập 'install' để chọn 'Package Control: Install Package', sau đó tìm AllAutocomplete và chọn nó.

Mã là ở đây: https://github.com/alienhard/SublimeAllAutocomplete

+0

Wow! Điều đó hoạt động rất tốt. Tìm thấy một lỗi - nó không phát hiện và tự động hoàn thành các tên lớp nếu lớp có '' -'' trong đó. Mọi thứ khác hoạt động tốt. – Rafal

+2

@Rafal Rất vui khi bạn thích nó. Để làm cho tên có dấu gạch ngang hoạt động, bạn có thể cần xóa - từ word_separators trong tệp Tùy chọn của bạn (mở từ trình đơn Tùy chọn> Cài đặt-Người dùng). Nếu bạn nghĩ rằng bạn tìm thấy một lỗi, hãy mở một vấn đề trên https://github.com/alienhard/SublimeAllAutocomplete. – alienhard

+1

"Tôi đã triển khai nó". @alienhard trả lời như một vị vua. Cảm ơn! –

Các vấn đề liên quan