2013-10-18 15 views
6

Sto usando PyCharm di scrivere del codice Python e notare che ho eseguito nella seguente problema abbastanza spesso:arresto PyCharm dal Codice sovrascrittura di fronte al mio cursore

scrivo una riga di codice come questo

for item in myList: 

Successivamente, realizzo che desidero l'indice di item pure, così provo a trasformare quella linea in questo:

for i,item in enumerate(myList): 

per trasformare il primo li ne nel secondo, metto il cursore a sinistra di item e digitare i,. Quindi, posiziono il cursore a sinistra di myList e digito enu; a questo punto, il codice di completamento suggerisce che potrei voler digitare enumerate, che è esattamente il comportamento che sto cercando. Quando mi ha colpito scheda per l'attuazione del suggerito enumerate, mi accorgo che la mia linea si trasforma in

for i,item in enumerate: 

Il myList è stato sovrascritto!
Il comportamento che mi aspetto è questo:

for i,item in enumerate(myList): 

con il cursore immediatamente a destra sia del myList o :.

C'è un modo per far funzionare Pycharm secondo le mie aspettative?

Solo nel caso è importante, il mio ambiente dev è Mac OSX 10.7.5 (Lion)

risposta

6

Questo comportamento è di progettazione quando si completa utilizzando Tab. Utilizzare Immettere anziché Tab per inserire la variante di completamento anziché la sovrascrittura.

impostazioni completamento del codice finestra di dialogo ha anche la possibilità di inserire la variante digitando punto, spazio, ecc

+0

Questo! La sovrascrittura mi stava facendo impazzire. Grazie. – emh

+2

C'è un modo per scambiare questi comportamenti? – canyon289

1

Questo è il comportamento predefinito in PyCharm, se si preme TAB , pur essendo collegato ad un'altra parola in questo modo en|myList, quindi myList verrà eliminato.

Cosa si può fare è questo, fa doppio clic su myList, premere CRTL +ALT +T, premere INVIO , quindi premere < -. Quindi digita semplicemente enumerate.

Se lo fai regolarmente, puoi semplicemente creare un modello live che circonda.

+0

L'idea di "un modello vivo che circonda" è molto interessante per me. Come potrei fare un modello live per sovrascrivere il comportamento [TAB] predefinito?Inoltre, sono su un Mac (domanda aggiornata), e 'CTRL + ALT + T' non funziona (nemmeno' CMD + ALT + T'). Quale sarebbe l'analogo collegamento alla tastiera Mac? – inspectorG4dget

+0

@ inspectorG4dget https://www.jetbrains.com/pycharm/webhelp/creating-code-constructs-using-surround-templates.html –

+0

@ inspectorG4dget Se si verificano problemi, invitami in una chat-room, o qualcosa del genere, e possiamo risolverlo. –

Problemi correlati