He estado usando ViM, TextMate y GNU Emacs por años.
Por ejemplo, aquí está el texto que quiero editar
foo
foo
foo
Y aquí está el resultado del texto que quiero tener
bar foo
bar foo
bar foo
Cuando estoy en Vim, puedo hacer "Ctrl v" en la primera línea y la primera columna, luego presionar "2 j", luego presionar "i", luego escribir "bar", listo.
Cuando estoy en Textmate, puedo presionar "Opción de comando de Apple" mientras selecciono hacia abajo (con el mouse), luego escribir "bar", listo.
Pero cuando estoy en GNU Emacs 23.1, no sé cómo hacerlo. : ((
Busqué en EmacsWiki y busqué en Google pero no obtuve la solución. Guíame si conoces mi solución. Estaría agradecido por eso.
Respuestas:
Se me ocurren dos opciones. El primero son los rectángulos (como se menciona en otra respuesta). Las instrucciones explícitas para eso son:
Otra opción, que proporciona muy buenos comandos de edición de rectángulos / columnas es el modo CUA . Aquí hay una publicación de blog (divulgación: mi blog) que describe cómo usarla. Para ver el poder del modo CUA, vale la pena ver este video de tres minutos .
Integro el modo CUA con lo siguiente (porque prefiero no tener el modo de marca transitoria):
fuente
En Emacs-24.4, el soporte base para rectángulos se ha mejorado un poco, por lo que en lugar de usar
C-SPC
seguido deC-x r t
, puede hacer lo siguiente:Una de las ventajas de este
C-SPC
método en comparación con el método es que obtendrá información visual sobre el rectángulo que está seleccionando. Por supuesto, elcua-mode
método también funciona (y funciona de manera similar).fuente
cua-mode
tenía más razón ... Solo por mencionar una cosa: encua-mode
, mientras un rectángulo está resaltado, puedo escribir y agregar texto. En el actual "soporte base" de emacs incorporado, el resaltado desaparece (la selección está "cancelada") y la entrada se inserta en el punto del cursor. Esto es contrario a la intuición y no es lo que generalmente quiero (y me acostumbro a cómocua-mode
hacerlo)(global-set-key [?\C-x ?\s] 'cua-rectangle-mark-mode)
.C-t
operación de reordenamiento no CUA (también conocido comoC-x r t
) también le muestra una vista previa del texto recién insertado a medida que lo escribe.En emacs este tipo de columnas se denominan 'rectángulos'. Así que esta es la página de documentación pertinente.
Todos estos comandos requieren que la región contenga el rectángulo en el que está operando. Por lo tanto, debe establecer la marca en el carácter superior izquierdo del rectángulo y extender la región hasta el carácter inferior derecho del rectángulo. El comando que está buscando es el
M-x string-insert-rectangle
que le solicita que inserte la cadena.fuente
Respuesta más corta: Habilite el modo rectángulo CUA a través de C-RET.
Entonces, para su caso, sería
bar
SPCVea la respuesta de @Trey para una solución más elaborada y enlaces a CUA.
fuente
Puede usar replace-regexp para esto:
Esto agregará una barra al comienzo de la línea.
fuente