2009-10-27 28 views
11

Estoy probando IntelliJ y tengo una pequeña molestia que no puedo determinar si hay una solución posible para IntelliJ. En Eclipse e incluso en TextMate (así como en muchos otros editores con autocompletar), si se encuentra en el medio de una sección de autocompletar como una cadena o un área de paréntesis, puede presionar Enter o Tab para llegar al final de esa sección. Por ejemplo:Escape de autocompletado IntelliJ

if (blah.equals(something.toString())) 

El símbolo de intercalación estaría en el medio del paréntesis de la parte toString. En IntelliJ, puede escribir entre paréntesis sin problemas, o tal vez podría presionar la tecla "Finalizar" para llegar al final. Una es una molestia menor, la otra es más molesta ya que tengo que quitar mis manos de la fila de inicio. En eclipse podía presionar la tecla Enter y me sacaría de esto ... TextMate, Tab.

¿Hay algún ajuste que pueda modificar o algo que pueda hacer para darme una funcionalidad similar en IntelliJ?

Respuesta

6

En ese contexto, si presiona Ctrl-Shift-Intro como CrazyCoder sugiere, de esta manera se produce este comportamiento. Agregará las llaves y colocará el cursor en la siguiente línea. También puede presionar Shift-Enter que lo pondrá en la línea siguiente y hace menos suposiciones sobre el código. Ctrl-Shift-Enter se comporta de manera diferente dependiendo del código que está mirando, por lo que no le dará un comportamiento constante. Por ejemplo, en el medio de una cadena, lo coloca al final de la línea y agrega un punto y coma.

Parece que el final es la clave preferida aquí para llegar al final de la línea. Puede agregar en el mapa de teclas una clave adicional para ir al final de la línea, si una combinación de teclas diferente funciona mejor para usted, pero no solo cambiará su comportamiento porque se encuentra en el medio de un paréntesis.

Mirando las opciones de IDEA, parece que el comportamiento de paréntesis no es realmente una plantilla en vivo como la creación automática de un bucle for, por lo que no se tacha cuando se termina, sino que se completa automáticamente entre paréntesis para usted, y reconoce inteligentemente que es posible que desee escribir con fluidez como si no lo hiciera.

5

Traté cmd-turno a entrar (en mac) y el resultado parece más útil para mí (en código javascript). Estoy usando una tubería ('|') para visualizar el cursor aquí:

antes:

var x = func1(func2(|)) 

después de pulsar Cmd-Shift-escriba:

var x = func1(func2());| 

por lo que incluso añade el punto y coma al final de la línea (pero aún debe presionar enter nuevamente para pasar a la siguiente línea).

EDITAR

acaba de encontrar este acceso directo es aún más útil:

antes:

if(a == b|) 

después de pulsar cmd por desplazamiento de entrar:

if(a == b) { 
    | 
} 

funciona tanto en php como en Javascript

1

Dado que estas respuestas son un poco viejo, no sé si alguien es consciente de que se puede salir del cerrado de auto-completado presentado escribiendo Shift +CLAVE

En Java si hizo System.out.println ("¡Hola mundo!"); Si el cursor está dentro de la "", Shift +" le conseguirá fuera de la "" y Shift +) te llevará fuera de la()