2014-10-12 25 views
8

Ho usato Sublime Text 2 per circa 3 settimane, considerandolo per il mio nuovo IDE. Tuttavia, una caratteristica mi sta facendo assolutamente impazzire.È possibile interrompere il completamento automatico della scheda in Sublime Text 2?

Il completamento automatico si apre circa 5 volte più spesso di quanto mi serve, il che andrebbe bene se potessi semplicemente digitare e ignorarlo. Tuttavia, inserisce continuamente qualsiasi cosa suggerisca quando premo il tasto tab, e il tasto tab viene utilizzato più volte su ogni riga per formattare il codice. Questo mi porta a dover annullare il completamento automatico su quasi ogni riga di codice che digito.

sono andato nelle preferenze, che è solo un file di testo gigante, e ha fatto le seguenti modifiche:

// 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, 

La mia lettura dei commenti è che questo dovrebbe causare completamento automatico solo di inserire i propri suggerimenti quando ho colpito entra, che è quello che voglio. Tuttavia, continua a farlo su una scheda. Ho impostato qualcosa in modo errato o c'è un bug in ST2 che impedisce all'utente di disattivare il completamento automatico?

EDIT

Per chiarire, mi piacerebbe davvero completamento automatico solo verificarsi se premo la mia freccia verso il basso per selezionare qualcosa nella lista e poi premere Invio. Né entra né scheda dovrebbe iniziare un completamento automatico senza che io prima selezioni un oggetto.

risposta

3

So che è una vecchia domanda, ma ho avuto lo stesso problema con nessuna risposta disponibile. Ecco la mia soluzione. Prova a seguire le impostazioni (funziona solo del tutto):

nelle impostazioni utente aggiungono:

// 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, 

E nella mappa tastiera utente:

// 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

sto usando Sublime Text 3 e aggiungo "tab_completion": false, in Preferenze -> Impostazioni-Utente e funziona.

5

Dopo decine di impostazioni permutazioni, sono stato in grado di ottenere Sublime Text 3 a comportarsi come volevo:

  • Quando viene visualizzato un completamento automatico, scheda ignora ed entra in una scheda.
  • Invio accetta un completamento automatico.

Sembra la scelta più ovvia per me.

Preferenze> Impostazioni

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

Preferenze> Associazioni chiave

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