2014-10-12 6 views
8

Ich benutze Sublime Text 2 seit ungefähr 3 Wochen, in Anbetracht meiner neuen IDE. Ein Feature macht mich jedoch absolut verrückt.Ist es möglich, Tab-Autocomplete in Sublime Text 2 zu stoppen?

Autocomplete erscheint etwa 5 mal so oft wie ich es brauche, was gut wäre, wenn ich einfach weg tippen und es ignorieren könnte. Es fügt jedoch fort, was immer es vorschlägt, wenn ich die Tab-Taste drücke, und die Tab-Taste wird mehrfach in jeder Zeile verwendet, um Code zu formatieren. Dies führt dazu, dass ich Autocomplete auf fast jeder Codezeile rückgängig machen muss.

Ich ging in den Einstellungen, die nur eine riesige Textdatei ist, und folgende Änderungen vorgenommen:

// When enabled, pressing tab will insert the best matching completion. 
// When disabled, tab will only trigger snippets or insert a tab. 
// Shift+tab can be used to insert an explicit tab when tab_completion is 
// enabled. 
"tab_completion": false, 

// Enable auto complete to be triggered automatically when typing. 
"auto_complete": true, 

// The maximum file size where auto complete will be automatically triggered. 
"auto_complete_size_limit": 4194304, 

// The delay, in ms, before the auto complete window is shown after typing 
"auto_complete_delay": 50, 

// Controls what scopes auto complete will be triggered in 
"auto_complete_selector": "source - comment", 

// Additional situations to trigger auto complete 
"auto_complete_triggers": [ {"selector": "text.html", "characters": "<"} ], 

// By default, auto complete will commit the current completion on enter. 
// This setting can be used to make it complete on tab instead. 
// Completing on tab is generally a superior option, as it removes 
// ambiguity between committing the completion and inserting a newline. 
"auto_complete_commit_on_tab": false, 

// Controls if auto complete is shown when snippet fields are active. 
// Only relevant if auto_complete_commit_on_tab is true. 
"auto_complete_with_fields": false, 

Meine Lektüre der Kommentare ist, dass dies nur zur automatischen Vervollständigung führen sollte seine Vorschläge einzulegen, wenn ich getroffen gib ein, was ich will. Dies geschieht jedoch weiterhin auf einer Registerkarte. Habe ich etwas falsch eingestellt, oder gibt es einen Fehler in ST2, der verhindert, dass der Benutzer die automatische Vervollständigung abstellt?

EDIT

Um klären, ich würde wirklich gern zur automatischen Vervollständigung nur auftreten, wenn ich meinen Pfeil nach unten drücken, etwas in der Liste auszuwählen und dann drücken Sie die Eingabetaste. Weder Eingabe noch Tabulator sollten eine automatische Vervollständigung initiieren, ohne dass ich zuerst ein Element auswähle.

Antwort

3

Ich weiß, es ist eine alte Frage, aber ich hatte das gleiche Problem ohne Antwort zur Verfügung. Hier ist meine Lösung. Versuchen folgende Einstellungen (funktioniert nur zusammen):

in Ihren Benutzereinstellungen hinzufügen:

// disable auto complete to be triggered automatically when typing. 
"auto_complete": false, 

// pressing tab calls completion menu, not autocomplete + it still works as ident 
"tab_completion": true, 

Und in dem Benutzer keymap:

// show autocomplete on tab, not automatically, commit on enter. 
{ "keys": ["tab"], "command": "auto_complete", "args": {"default": "\t", "exact": false}, 
    "context": 
    [ 
     { "key": "setting.tab_completion", "operator": "equal", "operand": true }, 
     { "key": "preceding_text", "operator": "regex_match", "operand": ".*[^0-9][^\r ^\n ^\t ^\f]", "match_all": false }, 
    ] 
}, 
{ "keys": ["tab"], "command": "auto_complete", "args": {"default": "\t", "exact": false}, 
    "context": 
    [ 
     { "key": "setting.tab_completion", "operator": "equal", "operand": true }, 
     { "key": "preceding_text", "operator": "regex_match", "operand": "[][a-z]", "match_all": false }, 
    ] 
}, 
4

Ich verwende Sublime Text 3 und ich hinzufügen "tab_completion": false, in Einstellungen -> Einstellungen-Benutzer und es funktioniert.

5

Nach Dutzenden von Einstellungen Permutationen, ich war in der Lage Sublime Text 3 zu verhalten, wie ich wollte zu bekommen:

  • Wenn eine zum automatischen Vervollständigung erscheint, Registerkarte ignoriert und eine Registerkarte eintritt.
  • Eingabe akzeptiert eine automatische Vervollständigung.

Scheint wie die offensichtliche Wahl für mich.

Einstellungen> Einstellungen

{ 
    "tab_completion": false, 
    "auto_complete_commit_on_tab": false 
} 

Einstellungen> Tastenbelegungen

[ 
    { "keys": ["tab"], "command": "insert", "args": {"characters": "\t"}, "context": 
     [ 
      { "key": "auto_complete_visible" } 
     ] 
    } 
] 
Verwandte Themen