usar salir como emacs

salir - como usar emacs



en Emacs, edita mĂșltiples lĂ­neas a la vez (8)

Creo que el compañero de texto tiene un modo en el que si comienzas a escribir, se ingresará lo mismo en todas las líneas que hayas seleccionado. ¿Hay algo similar a esto en emacs? Supongo que hay una forma en que los rectángulos pueden ayudarme, pero no estoy seguro de cómo ...



Es absolutamente necesario que intentes instalar varios cursores:

multiple-cursors.el

Está en mermelada y melpa así que solo:

M-x package-install multiple-cursors


Es tan simple como esto: Cx rt


Las respuestas que se muestran arriba son para insertar texto en columnas. "Editar cada línea en la selección" de TextMate inserta el mismo texto en cada línea, independientemente de la longitud de cada línea. Estoy aprendiendo Lisp ahora, así que como ejercicio escribí una función para hacer esto:

(defun append-to-lines (text-to-be-inserted) ;;Appends text to each line in region (interactive "sEnter text to append: ") (save-excursion (let (point-ln mark-ln initial-ln final-ln count) (barf-if-buffer-read-only) (setq point-ln (line-number-at-pos)) (exchange-point-and-mark) (setq mark-ln (line-number-at-pos)) (if (< point-ln mark-ln) (progn (setq initial-ln point-ln final-ln mark-ln) (exchange-point-and-mark)) (setq initial-ln mark-ln final-ln point-ln)) (setq count initial-ln) (while (<= count final-ln) (progn (move-end-of-line 1) (insert text-to-be-inserted) (next-line) (setq count (1+ count)))) (message "From line %d to line %d." initial-ln final-ln ))))

Primero realiza una selección que incluye todas las líneas que desea afectar y luego ejecuta la función con Mx append-to-lines.


Los rectángulos son para cosas simples como eliminar la misma cantidad de espacios en líneas adyacentes.

De lo contrario, las macros de teclado son el camino a seguir.


Para aquellos de ustedes que quieran hacer esto para escenarios más complicados y quieran hacerlo sin instalar un nuevo módulo, continúen leyendo. (Esto es posible en Emacs sin instalar MarkMultiple, aunque personalmente uso y amo MarkMultiple)

Hace poco tuve que sacar una consulta SQL a un archivo y luego formatearla en una consulta MYSQL INSERT. Así es como Emacs me hizo la vida más fácil ...

El archivo se ve así:

1 I am a random text 2 I am not 3 G, you''ve gone mad 4 Click on this link 5 Transfer in progress (we''ve started the transfer process) 6 But transfer happend yesterday 7 No you are 8 Oh please! this is getting too much! 9 I love emacs 10 I cant be bothered with this any more 11 its time to raise the bar 12 show me how to expand my territory

Y quiero que se vea como:

(1, ,''I am a random text''), (2, ,''I am not''), (3, ,''G, youve gone mad''), (4, ,''Click on this link''), (5, ,''Transfer in progress (weve started the transfer process)''), (6, ,''But transfer happend yesterday''), (7, ,''No you are''), (8, ,''Oh please! this is getting too much!''), (9, ,''I love emacs''), (10, ,''I cant be bothered with this any more''), (11, ,''its time to raise the bar''), (12, ,''show me how to expand my territory''),

  1. Coloque el cursor en la primera línea
  2. Presione Cx ( para comenzar a grabar macro [En este punto se están grabando todas las entradas clave, por favor siga las instrucciones cuidadosamente]
  3. Presione Ca para ir al comienzo de la línea
  4. Escriba "(" seguido de Mf para avanzar una palabra y luego escriba ","
  5. Cn para ir a la siguiente línea, seguido de Cx ) para finalizar la macro
  6. Cu 11 Cx e repite el macro n (11 en este caso) veces

Eureka! Por ahora, si no has fallado obtendrás algo que se ve así:

(1, I am a random text (2, I am not (3, G, youve gone mad (4, Click on this link (5, Transfer in progress (weve started the transfer process) (6, But transfer happend yesterday (7, No you are (8, Oh please! this is getting too much! (9, I love emacs (10, I cant be bothered with this any more (11, its time to raise the bar (12, show me how to expand my territory

En este punto, voy a dejarte para que averigües el resto. Pero, antes de irme, me gustaría mencionar que hay bastantes formas de lograr este tipo de cosas. Esta es solo una de esas formas y resulta ser mi forma favorita.

Espero que lo hayas encontrado útil;)


Puede usar los siguientes comandos (y teclas) para lograr esto:

  • rectángulo abierto (Cx, r, o) agregar espacios
  • kill-rectangle (Cx, r, k) borrar
  • rectángulo transparente (Cx, r, c) reemplazar con espacios
  • Mx string-insert-rectangle relleno con texto especificado

Aquí hay una descripción completa de esas características: http://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html


Una de las soluciones es usar el modo CUA. Active el modo cua con Mx cua-mode modo Mx cua-mode , seleccione rectángulo comience: primero presione C-Enter y mueva el cursor con los comandos de movimiento estándar para hacer la selección, ahora presionando enter en cualquier momento, desplazará el cursor por las esquinas del rectángulo permitiéndole anteponer o agregar texto a la selección.