2011-04-22 12 views
12

En Eclipse, el espacio virtual (la posibilidad de colocar el símbolo de intercalación después del final de una línea) está deshabilitado de manera predeterminada, lo cual es contrario a la configuración predeterminada de IntelliJ IDEA. http://www.jetbrains.com/idea/documentation/migration_faq.html¿Cuál es el propósito de IntelliJ IDEA Virtual Space?

¿Hay alguna razón en particular por la que desee colocar el cursor después del final de la línea? Estoy tratando de pensar en un caso de uso para ello, pero no puedo proponer ...

La razón por la que pregunto porque es la configuración predeterminada en IntelliJ lo que me da curiosidad.

Respuesta

5

Estaba esperando a que alguien responda esta pregunta. Esta es una pregunta realmente interesante y esperaba que algún viejo temporizador la contestara ... (Dado que tampoco puedo entenderla claramente ...) El siguiente es un extracto del Visual Studio Tips.

"Bueno, el espacio virtual es un poco raro de entender si no eres de la Vieja Escuela. Verás, hace mucho tiempo en esta galaxia solíamos tener (y algunas personas todavía tienen) editores que tratan en todas partes como espacio editable. Permítanme explicar: sin espacio virtual en la línea termina donde termina el código. Ahora puede tener algunas líneas muy largas de código pero, hasta que presione Enter, la línea simplemente continúa.

If I Mueva mi cursor al final de cualquiera de estas líneas y presione la tecla de flecha derecha, luego irá a la siguiente línea. Por lo tanto, para la línea corta, el cursor saltará a la siguiente línea en la columna 44. Para la línea más larga, saltará por la siguiente línea en la columna 68. Y para la línea larga súper duper saltará a la siguiente línea en la columna 176. Esto es la forma en que los editores han estado por un tiempo y no es nueva para la gente.

Sin embargo, esto no siempre fue así. Hubo un momento en que podía escribir en cualquier lugar que quisiera en cualquier momento que quisiera sin restricciones. Algunos editores de texto todavía hacen esto hoy. El espacio virtual le permite volver al estilo antiguo de edición que prefieren algunos codificadores. Vaya a Herramientas -> Opciones -> Editor de texto -> Todos los idiomas -> General -> Configuración y marque la casilla "Habilitar espacio virtual" para activar esta función. Cuando lo haga, podrá escribir en cualquier lugar de una línea independientemente de si el código finaliza o no: "

9

Para mí, como antiguo programador, esta pregunta es realmente extraña. La pregunta debería ser por qué tantos editores nuevos no ofrecen esta función antigua. (Junto con la edición de bloque/rectangular).

En pocas palabras, quiero poder mover mi texto de cualquier manera, sin restringirme a donde alguien ha escrito antes. pantalla representa una imagen rectangular de una pieza de texto (piense en metaforas aquí, etc.). Espero poder ir a cualquier lugar dentro de este espacio rectangular sin ser detenido por cómo se ve el archivo subyacente.

Ejemplo: Si tenemos tres líneas de texto:

Línea 1: esta es una línea larga con mucho texto.
Line2: esta es una línea más corta.
Line3: Esta es una tercera línea con texto.

Si estoy al final de la línea 2 y quiero navegar hasta el final de la línea 1, quiero poder ir a la derecha (varias veces) y luego hacia arriba, que es una forma de hacerlo en virtual espacio, pero en el nuevo tipo de editores (que se comportan de una manera muy antigua centrada en archivos) si presiono a la derecha al final de la línea 2, terminaré al principio de la línea 3. ¿Qué sentido tiene eso? Por supuesto, eso imita un "paso adelante" en el archivo, pero metafóricamente quería ir a otro lado.

Realmente creo que esto es un camino bastante al revés.

Y como punto final, esto es sintomático de muchos (¿jóvenes?) Programadores que no han visto tantos sistemas operativos y editores de antes, algunos de los cuales no eran en absoluto peores que los sistemas actuales. Linux/Unix no es el mundo, había muchos sistemas mejores de los que podríamos aprender.

+4

La "nueva" forma es de hecho una mentalidad diferente. Prefiero "recorrer los caracteres del archivo" en lugar de "mover el cursor a una posición en la pantalla". Si mi cursor estaba al final de la Línea 2 y quería navegar hasta el final de la Línea 1, podría hacerlo con dos teclas: Arriba, Fin. –

+1

En ese momento, tal vez tenías 4k RAM, 4MB de espacio en disco. Con ese tipo de recurso, ¿cómo se puede dar el lujo de colocar espacios basura en los archivos y desperdiciar espacios en el disco? P – Rifat

+0

@Rifat El editor no rellena los espacios basura solo porque navega. Simplemente mueve el cursor a otro lugar. Los espacios se agregarán solo cuando comiences a escribir en algún lugar. Entonces, no se desperdicia espacio. – Andy

2

Hace que sea más fácil alinear los comentarios/códigos al final de la línea, o en los datos en columnas, sin código, etc. En algunas circunstancias, ahorra muchas molestias.

Lo tengo apagado por defecto, a pesar de traer un programador relativamente viejo que comenzó con editores de estilo de lienzo (a diferencia del estilo de línea).

2

El espacio virtual le brinda más libertad para tratar su código fuente como una matriz bidimensional de caracteres, en lugar de como líneas fluidas de texto.

Esto es muy útil si le gusta alinear ciertas cosas en la misma columna.

Además, a mucha gente (incluido yo) le gusta usar la edición de bloques siempre que sea posible. La edición de bloques depende en gran medida de la selección de bloques. En Intellij block selection se logra manteniendo presionada la tecla Alt mientras arrastra el mouse. Si no tiene marcada la opción Allow placement of caret after end of line en Intellij, encontrará que la selección y edición de bloques es mucho más difícil. La tendencia del editor a ubicar el símbolo de intercalación al final de una línea en lugar de en el punto preciso donde hizo clic hace que la edición de bloques sea más difícil de lo que debería ser.

En cualquier caso, tener el espacio virtual habilitado no debería ser realmente un problema para nadie. Si su interrelación termina más allá del final de la línea actual y la desea al final, todo lo que necesita hacer es presionar la tecla End.

Cuestiones relacionadas