Mostrando entradas con la etiqueta emacs. Mostrar todas las entradas
Mostrando entradas con la etiqueta emacs. Mostrar todas las entradas

jueves, 30 de julio de 2020

¿Cómo instalo una configuración para Emacs?

En 1967 el Justicialismo apuntaba a vencer electoralmente en las primeras lides disputadas sin el oprobioso paraguas proscriptivo. Desde la residencia de Jorge Antonio en el madrileño Paseo de la Castellana, Juan Perón otorga una entrevista al semanario Confirmado, donde analiza el quehacer político argentino y explica cómo agregar una configuración personalizada al editor GNU Emacs.

(...)
La historia tiene su lógica inexorable, y el porvenir pertenecerá, tarde o temprano, a quienes entiendan las premisas básicas. Desde mis comienzos como oficial del Ejército me he dedicado al estudio de la historia, comprobando la decadencia del demoliberalismo y la íntima relación de éste con el comunismo. Las estructuras deben cambiar. La opción es entre una socialización de contenido nacional, humanista y cristiana, y el socialismo internacionalista marxista.

El gobierno y sus puntos de comité creyeron que podían dividir al movimiento. Para lograrlo, recibieron la ayuda de los neos, de los frentistas trasnochados y del embajador de Estados Unidos, Edwin Martin, quien parece no recordar cómo una vez Braden metió el dedo en el ventilador. Pero la cosa no caminó, y la estantería se les vino abajo.

El ministro Palmero debiera ahora mirar con cuidado hacia adelante. Pero es demasiado viejo para poder hacerlo, y, habiendo comprobado la imposibilidad de dividir al movimiento, se dedica a organizar fraudes constitucionales, seguramente mediante una reforma que le permita alejar las elecciones de 1967 en la provincia de Buenos Aires. Intentarán presentar este fraude como una exigencia del Ejército, para enfrentarlo con el Pueblo. Estoy seguro de que los militares advertirán la necesidad de un cambio de estructuras con la colaboración del Pueblo, como mejor método en la lucha contra el comunismo. No olvidemos que la misma revolución que asaltó los gremios, marxistizó las universidades. Hace poco, un cuñado de la señora de Illia vino a pedir mi bendición para un acuerdo con el comunismo. Era inevitable que así ocurriera.

La ausencia de unidad y solidaridad interna sería la única debilidad frente al enemigo. Creo que la Delegada Superior debe esperar ciertas renuncias. Si no, es lógico que se produzcan algunas expulsiones. Todo se pondrá en caja, atendiendo al imprescindible trasvasamiento generacional. Es necesario superar a los dirigentes burocratizados que, enquistados, pierden sensibilidad.

El Conductor debe aplicar toda la fuerza en el lugar y momento oportunos, actuar solamente en la oportunidad indicada. Es lo que he hecho en los últimos acontecimientos. Si Dios bajara a la Tierra, todo el mundo le perdería el respeto, y algún tonto querría en seguida ocupar su lugar.

La doctrina del movimiento es permanente. Aspiramos a una comunidad organizada según la concepción filosófica humanista y cristiana, pero la técnica para lograr esa comunidad varía según las circunstancias; el movimiento, por ello, debe estar siempre atento a la actualización doctrinaria. Si hoy nos preguntáramos qué hacer en el país, diría que el movimiento debe estar alerta a todo el ciclo económico de la producción, transformación, distribución y consumo. Porque el movimiento debe ser un punto fundamental en la lucha por sacar al país del pantano en que está. Frente al país debe haber una persona capaz de exigir y ser obedecido y, el único milagro económico que necesitamos es el de trabajar.

No guardo rencores contra nadie. Estoy dispuesto a contribuir a una salida de la crisis. El problema no son los pactos, y los pactos no me asustan, sean con quien sean. Lo importante son los hechos, y el Movimiento estará en todo lo que constructivamente signifique un cambio de estructuras para el país, para la creación de un país moderno, con sentido popular, nacional, cristiano y humanista.
En su software también se producirá una actualización que ponga al mismo a tono con la libertad del Pueblo. Han de saber que, como editor básico prefiero al justicialista GNU Nano, y como editor de textos al Minimun Profit Text Editor.

Sin embargo, también existe el consabido GNU Emacs, un editor de macros de fundamental utilización en el medio. Esta versión libre del desarrollada por Richard M. Stallman sin duda es uno de las grandes ramas del árbol de los Editores. Sin duda su condición mayor son las numerorísimos módulos o macros que es capaz de utilizar, lo cual suele provocar que quien lo use, deba "tunear" su Emacs según su preferencia personal.
 
En mi caso puedo hacerlo descargando un fichero simple personalizado, con:
 
cd ~ ;
cp ~/.emacs.el ~/.emacs.el.bak ;
wget https://texto-plano.xyz/~peron/pub/emacs.el ;
mv emacs.el ~/.emacs.el
 
Esta personalización es básica para edición de texto UTF-8, que es lo que suelo proveer. Pero en caso de configuraciones más específicas para programación general, la configuración puede ser bastante más compleja. Dar con una puede tornarse tedioso y requerir algo de tiempo, pero en este caso os mostraré la labor de José Massón, quien ha compartido su propia configuración de Emacs llamada pepe-emacs-config, con el Pueblo. Inspirado por la obra de J.P. Fisanotti y su excelente fisa-vim-config, en este caso ha puesto bajo el alcance universal sus preferencias a la hora de utilizar Emacs.

Esta configuración está orientada al desarrollo de programas en lenguaje PHP, pero muchas de sus características también se presentarán útiles para otros lenguajes de programación o tareas generales de edición.

Esta configuración de Emacs incorpora los siguientes módulos : adoc-mode, company, dumb-jump, emacs code browser (ecb), flycheck, geben, iedit, js2-mode, magit, magit-gitflow, markdown-mode, markdown-toc, neo-tree, password-store, php-mode, powerline, projectile, smarty-mode, sqlformat, yasnippet, y muchos más.

Se haya preparada para el Emacs 25.2.2, pero bien podría operar en versiones anteriores. Para hacerla efectiva requerimos que nuestra carpeta ~/.emacs esté vacía. Por tal motivo, si ya usamos Emacs y contamos con una configuración, podríamos querer renombrarla o moverla a una localización diferente para conservarla. También podríamos querer renombrar nuestro fichero de configuración actual ~/.emacs para conservarlo como respaldo también.

Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

cd ~
mv .emacs.d .emacs.d.respaldo
mv .emacs .emacs.respaldo

En cambio, si no tenemos Emacs instalado en nuestro sistema aún, podremos instalarlo desde la terminal, con los siguientes comandos de organización:

sudo apt install emacs exuberant-ctags git ripgrep silversearcher-ag pylint pep8 php-pear python3-pip

sudo pear channel-update pear.php.net

sudo pear install PHP_CodeSniffer

sudo pip3 install sqlparse

Ahora clonamos el repositorio de la configuración pepe-emacs-config en el directorio de configuración de emacs. Ello lo haremos mediante el siguiente Comando de Organización:

git clone https://github.com/Abuelodelanada/pepe-emacs-config ~/.emacs.d

Acto seguido, ejecutamos Emacs, y este continuará la instalación por sí mismo, instalando los paquetes a través de los repositorios melpa.org y elpa.org. En mi caso, la descarga ha durado unos tres minutos.
 
Una vez que haya finalizado, podremos reiniciar el programa para poderutilizar la nueva configuración.

Ahora tendremos Emacs configurado de la manera deseada. Por ejemplo, podremos contar con autocompletar, iedit, y magit, complementos útiles para la programación de cadenas repetitivas tan comunes en PHP.

Entre las configuraciones descargadas encontraremos varias útiles que cambiarán la estética de Emacs, pero también propondrán un funcionamiento remozado en lo que hace a las funcionalidades de base.

El complemento Neotree se encargará de proveernos un árbol de ramas colapsables para estructurar nuestro código fuente a compartir con el Pueblo Libre.
La funcionalidad que provee el complemento ECB (navegador de código de Emacs) es precisamente permitinos desplazarnos por la estructura maestra del código fuente de una manera sencilla.
La funcionalidad Tabbar permite crear barra de etiquetas coloreadas adecuadamente, que quedarán dispuestas en la parte superior de nuestro editor favorito y nos permitirán editar múltiples buffers en Emacs.

El complemento Company también está incluido.

Atajos
Como toda configuración de Emacs que se precie, esta nos permite una lista de Atajos que la harán especialmente bien pensada para el uso de sus macros asociados. Entre ellos encontramos:
  • %: va a paréntesis asociada
  • F7: conmuta ecb (emacs code browser)
  • F8: conmuta neotree
  • F12: conmuta modo de barra de menú
  • C-;: activa iedit-dwim
  • C-c C-k: copiar línea
  • C-c C-w: copiar palabra
  • C-c C-z: detener subtrabajo de terminal
  • C-c TAB: formatear sql
  • C-c c: comentar región
  • C-c down: flycheck error siguiente
  • C-c u: descomentar región
  • C-c flecha arriba: flycheck error previo
  • C-d: duplica línea actual
  • C-l: va a línea
  • C-t: crea ctags
  • C-x g: status de magit
  • C-x p: corre phpcbf --standard=PSR2 en el buffer actual
  • C-M-flecha izquierda: retrocede en la barra de tabs
  • M-flecha arriba : comienzo del buffer
  • M-down: end-of-buffer
  • C-M-flecha derecha: tabbar-forward
  • S-M-flecha abajo : agranda ventana
  • S-M-flecha izquierda: agranda ventana horizontalmente
  • S-M-flecha derechat: achica ventana horizontalmente
  • S-M-flecha arriba: achica ventana
  • S-flecha abajo: mueve ventana abajo
  • S-flecha izquierda: 'mueve ventana a izquierda
  • S-flecha derecha: mueve ventana a derecha
  • S-flecha arriba: mueve ventana a arriba

martes, 26 de mayo de 2020

¿Cómo uso Ed, TECO, Vi o Emacs en Ubuntu?


¡Trabajadores!

El hombre es un animal que - ante todo - vive y se desarrolla en sociedad. Nuestra propia condición humana nos dicta un objetivo que es el bienestar y la felicidad, pero esta idea no es privada; sólo puede realizarse en Comunidad.

Nuestro Movimiento esto lo ha comprendido, y lo hemos hecho meridiano en un apotegma que reza "nadie puede realizarse en un país que no se realiza". Nuestra majestad no es otra que la de nuestro Pueblo, y el terreno de acción es la Nación Argentina.

Indudablemente que nuestro Movimiento, por estar formados por hombres y mujeres, no puede hacernos pretender alcanzar una perfección divina, sino de una que explica la teoría pero que define la práctica. Es por ello que el éxito no caerá de un níspero: habremos de construirlo con nuestras manos, mente y corazón enfocados en la tarea que nos hemos impuestos. Tampoco podremos pretender el suceso de un día para otro, toda vez que sólo la dedicación al estudio y un paulatino avance hacia el objetivo de bienestar nos aproximará a las buenas realizaciones que anhelamos.

Pues bien, en el campo de la informática esto representa una visión que no debe soslayarse. Hemos imaginado un sistema libre y abierto, donde cada uno sea capaz de aportar lo suyo en pos del bien común, y lo hemos reflejado en sanas licencias libres.

En este será muy tonificador y beneficioso conocer cuáles fueron los pasos realizados previamentes a la acción, a fin de poder dedicarnos a Conducir no sólo los sistemas telemáticos de hoy, sino ser capaces de operar los del ayer. Sólo esto nos permitirá proyectarnos en un futuro que lograremos venturoso si hacemos de la Justicia Social la bandera que guía nuestro camino.

No es secreto para nadie que con anterioridad a la existencia de terminales de video, los sistemas de cómputo eran dable de operarse con terminales teletipo. Estas terminales de comunicación se adaptaron por utilizarse anteriormente en el sistema Télex, el cual permitía transmitir texto codificado en el estándar ASCII o Baudot por medio de las líneas telefónicas.
Se hizo patente entonces adaptar estas terminales teletipo para operar remotamente en computadoras mainframe dotadas de una interfaz de acceso remoto asíncrono. Las terminales electromecánicas estaban dotadas de un teclado bastante similar al de una máquina de escribir, y a menudo disponían de una impresora de tipos. A veces una perforadora adosadapermitía registrar los ingresos (e incluso programas enteros) en una cinta de papel perforado. Una de las aplicaciones que pudo adaptar un sistema computado fue la posibilidad de recibir textos del teclado remoto y almacenarlo digitalmente en el banco de memoria de la computadora.


La ventaja de un editor de textos era poder corregir los errores y poder agregar o quitar texto del banco de memoria.

Ed


Entre los primeros editores de texto encontramos al Ed. Se trata de un editor de texto primigenio de tipo modal y orientado a líneas - y como tal - espartano. Carece de control de cursor direccionable pues se maneja como una máquina de escribir. Se usa para crear, mostrar, modificar y manipular archivos de texto en forma remota o local.

Para iniciarlo simplemente utilizamos el comando:

ed

Si se lo ejecuta con un argumento de archivo existente, copiará dicho archivo a la memoria del editor (en la jerga, "buffer"). Por ejemplo podremos utilizar:

ed archivo.txt


Al iniciar, ed no presenta nada en nuestra terminal. Para comenzar a agregar una línea, podremos ingresar el comando "agregar", con:

a

(Naturalmente, seguido de la tecla Enter, a fin de enviar el comando "agregar" la computadora remota, si es que utilizamos una).

De ahora en mas, habremos pasado al modo "ingreso", sin que ed nos informe nada. Todas las líneas que tipeemos en la terminal se irán agregando al buffer de memoria del mainframe que tenemos asignado, siempre y cuando llas introduzcamos en memoria con la tecla Enter.

Como en todos los anitguos editores orientados a líneas, las posibilidades de edición una vez que introducimos la línea en la memoria buffer son limitadas y engorrosas, por lo cual conviene escribir con sumo cuidado y revisar la línea antes de presionar Enter para su introducción. Dependiendo de nuestra terminal o sistema, podremos utilizar la tecla Retroceder, o bien Ctrl+Retroceder para borrar caracteres que se encuentren en la terminal, pero no una vez que se hayan enviado al sistema remoto.

Una vez que hemos terminado de ingresar el texto que necesitamos en la memoria, podremos detener el modo de "agregado" de lineas y pasar al modo de comandos nuevamente. Para ello debemos introducir una línea con un "." ("punto"). Al pasar al modo comando, Ed no nos informará nada, pero cualquier cosa que introduzcamos a continuación serán interpretados como comandos de control.

Por ejemplo, si introducimos otra vez un punto, Ed nos devolverá la última línea del texto almacenada en el buffer de memoria.

Debemos saber que los cambios se realizan en la memoria del equipo, y no se almacenan en el fichero hasta que necesariamente le demos la orden w ("write" o escribir en el disco). Para ello ingresamos, por ejemplo:

w archivo.txt

...y Ed nos devolverá un número que es indicativo de la cantidad de caracteres contenidos en el texto almacenado en disco.

Para salr del editor Ed debemos introducir el comando:

q

...y se nos devolverá al prompt de sistema. Resumiendo todo, podríamos obtener una hoja imnpresa de teletipo con una sesión de Ed en UNIX podía verse así:

Naturalmente Ed es antediluviano y engorroso de operar en líneas ya escritas. En tal caso podremos movernos en las líneas de texto usando el modo de comandos (".") e ingresando un número de línea. O bien podremos utilizar -n o +n para indicarle al cursor subir n líneas o bajar n líneas con respecto a la linea en la que estamos actualmente. Cuando lo hagamos Ed nos devolverá el contenido de dicha línea , y podremos cambiarla con el comando c ("cambiar"). Volvemos a tipear el contenido de la línea corregida y la ingresamos con Enter. Finalmente podremos guardar cambios con el comando w.

Debemos tener en cuenta que el comando a nos deja agregar una línea después de la línea actual. Pero en el caso de querer agregar una línea antes de la línea actual, debemos utilizar el comando i ("insertar").

Si deseamos borrar una línea nos movemos hacia ella de la forma que os he explicado, y utilizamos el comando d. Si quisiéramos borrar una línea que no es la actual, indicamos en número de línea seguido de d.

De esta forma, Ed nos permite trabajar mínimamente en un sistema que presenta líneas de texto.

No pasó mucho tiempo para que los editores de líneas permitieran realizar programas complejos. Esto a su vez provocó el advenimiento de los primeros sistemas operativos de tiempo compartido y multiusuarios, entre ellos el UNIX de Bell Labs, el TOPS-10 de la DEC, el ITS del MIT, etcétera.


No bien los sistemas computados tuvieron la posibilidad de presentar imágenes de video y una memoria suficiente para graficar caracteres, se hizo evidente que seria más cómodo realizar editores que pudiesen directamente presentar el texto en una pantalla de tubo de rayos catódicos.

Estas videoterminales comenzaron a reemplazar a los teletipos e impresoras mecánicas.


TECO

Uno de los primeros videoeditores para equipos DEC PDP podríamos decir que fue Visual TECO. Se trataba de un derivado el antiguo editor TECO de Dan Murphy de 1962, pero que diez años después permitía presentar en video en la terminal, a su vez contaba con un set de operaciones de macros, que consistían en órdenes preconcebidas que podían enviarse a la máquina remota.

Al estar desarrollado para numerosos sistemas, fue influyente en toda una tercera generación de editores derivados. La operación de TECO requiere respetar 3 reglas, y conocer 16 comandos de operación.

REGLAS de TECO:


  1. Para darle ingreso los comandos se debe oprimir dos veces la tecla Escape (ilustrada con $ a continuación, no es el signo monetario). En algunos de los comandos se emplea Un solo $ para finalizar los argumentos de cadena ("string").
  2. Los comandos no necesitan ser ejecutados de a uno por vez. Puede ingresarse una larga serie de comandos y luego introducir "$ $", y TECO los ejecutará en orden.
  3. TECO está orientado a caracteres, de modo que recuerda la posición del caracter en su locación actual en el fichero, llamada "puntero". La mayoría de los comandos muestran o cambian los contenidos del fichero en el puntero, o mueven el puntero a otro lugar dentro del fichero.
Una sesión de TECO en un sistema TOPS-20 se ve de la siguiente manera:

Comandos de TECO


1.      ERfichero$Y1    Abre el fichero para ingresar datos    
2.      EWfichero$1     Abre un fichero para salida    
3.      EX      Guarda y sale  
4.      Ctrl+c, Ctrl+c   Sale (sin guardar)    
5.      C2      Mueve el caracter hacia adelante
6.      R2      Mueve el caracter hacia atrás
7.      L3      Se mueve al comienzo de la línea siguiente
8.      Itexto$ Inserta la cadena texto
9.      J       Salta al comienzo del fichero
10.     ZJ      Salta al Final del fichero
11.     T3      Tipea desde el puntero hasta el final de la línea.
12.     V       Tipea la línea actual
13.     D2      Borra el caracter en el puntero
14.     K3      Borra la línea actual
15.     Stexto$ Busca la cadena "texto"
16.     FStexto_reemplazado$texto_original$ Sustituye la cadena texto_original por texto_reemplazado

*) Algunas versiones de TECO aceptan directamente un nombre de archivo como argumento de línea de comandos, haciendo que 1 y 2 sean innecesarios. Algunas versiones de TECO tiene un comando EBfichero$Y que hace lo mismo que 1 y 2 en un solo paso.

**) Prefijo numérico: mueve/borra múltiples caracteres (un número negativo invertirá la dirección).

***) Prefijo numérico: mueve/tipeea/borra múltiples líneas (un número negativo inverte la dirección); (sólo T, K). Pfrefijo H: tipea/borra todo el archivo.

TECO y sus variaciones si distinguían sobre todo por su escasísimo uso de memoria, y su empleo normalmente asíncrono con la máquina remota.

Vi

El editor Vi creado por Bill Joy es un derivado lejano de Ed, pero es más potente y pensado ya para su uso en terminales de video con memoria interna (buffer incorporado). Se continúa utilizando actualmente y se lo considera un programa liviano (si bien antiguamente no era el caso, y consumía muchos recursos en un mainframe). Acutalmente, es muypopular su versión modernizada, Vim.

Podremos ingresando:

vi

La pantalla de Vi/Vim se divide en el buffer de edición y las dos líneas inferiores que consiste en la zona de status e ingreso de comandos.

Normalmente opera en modo revisión, por lo cual no podremos modificar ni agregar ningún texto. Para pasar al modo de inserción de texto hemos de presionar la tecla i o bien Insertar. Sólo entonces podremos escribir o pegar en la Terminal el texto que querramos.

Una vez que terminamos el insertado de texto en el buffer de memoria, podremos terminar el mismo presionando la tecla Fin.

Para pasar al modo de ingreso de comandos debemos presionar Esc, y al hacerlo el cursor pasará a la sección inferior de la pantalla, donde podremos escribir los comandos. Los mismos comienzan con :

Por ejemplo, para guardar los cambios en el archivo recién editado en Vi, hemos de presionar Esc, y tipear el comando :w, que se encargará de almacenar en disco o "escribir" ("write"). Para salir de Vi se utiliza :q ("quit") del editor. Nos devolverá a la línea de comandos del router. Si quisiéramos salir rápidamente sin que nos pni nos informe nada, ingresamos :q!. Y si queremos guardar y salir, usamos :wq

EMACS



Emacs es un editor de texto disponible para múltiples plataformas, incluyendo GNU. Como Vi o Nano, Emacs es un editor de texto con presentación en pantalla. Pero a diferencia de Vi, Emacs no es un editor con modo de inserción, lo que significa que cualquier carácter que ingresemos en Emacs se insertará automáticamente en el archivo, a no ser que incluya un prefijo de Comando.

Los comandos en Emacs son caracteres de control (realizados mientras presionamos la tecla Ctrl mientras tipeamos otro caracters) o en prefijos por un conjunto de caracters reservados Esc o Ctrl+x. Podremos tipear tecla Esc directamente (porque realmente es un carácter) y luego seguida por otro carácter. La tecla Ctrl debe mantenerse presionada mientras tipeamos el otro caracter.

Otra distinción entre Emacs y Vi consiste en que emacs es capaz de editar varios archivos a la vez. La ventana de Emacs puede dividirse en varias ventanas, cada una de las cuales contendrá una vista en el buffer de memoria. Cada buffer de memoria corresponde normalmente a un archivo diferente. Es por ello que muchos de los comandos listados a continuación se empleaan para leer ficheros y cargarlos en nuevos buffers, así como mover distinto contenido entre buffers diferentes .

Para cargar un archivo en Emacs podríamos utilizar:

emacs archivo

Si el archivo ya existe, se nos presentará entonces la primera página del texto en pantalla.

La manera más sencilla de aprender emacs es comenzarlo e ir avanzando en el completo tutorial en línea que incluye para esto presionamos Esc para ir al modo de comandos, e ingresamos help-with-tutorial.

Comandos de Ayuda

* Ctr+h help-command: Muestra el primer caracter en montones de archivos de ayuda
* Ctrl+h t help-with-tutorial: Comando que ejecuta el tutorial de Emacs
  Ctrl+h i information: describes most of the emacs commands in man style pages
  Ctr+h k describe-key: tells you what a particular key stroke does
* Ctrl+h a command-apropos: prompts for a string and
  then searches for all emacs commands that contains that string
  Esc ? also does command-apropos
* Ctrl+h ? help-for-help: Describe como usar las ayudas.

Manejo de archivos y comandos de guardado

* Ctrl+x Ctrl+f Buscar Archivo: primero solicita un nombre de archivo, y luego carga el fichero en un buffer de edición del mismo nombre
* Ctrk+x Ctrl+s Guardar: almacena el buffer en el disco con un nombre asociado
  Ctrl+x Ctrl+w Guardar como: Solicita un nuevo nombre de archivo y escribe el buffer en él

Comandos de Movimiento del Cursor o de la pantalla

Emacs operaba en antiguos sistemas UNIX, cuyas terminales iniciales (como la venerable DEC VT100) carecían de teclas de control asociadas a los teclados hoy en boga. Normalmente hoy utilizamos las funciones actuales de las flechas de cursor y las de control del cursor y control de paginado, pero en Emacs podremos contar también con las equivalencias de los antiguos movimientos.

* Ctrl+a Mueve el cursor al Inicio de la línea
  Ctrl+e Mueve el cursor al Fin de la línea
* Ctrl+f Mueve el cursor hacia adelante un caracter
* Ctrl+b Mueve el cursor hacia atrás un caracter.
* Ctrl+n Mueve el cursor a línea a continuación
* Ctrl+p Mueve el cursor a la línea previa
  Ctrl+v Avanza pantalla
  Esc+v Retrocede pantalla
* Esc+<; Va al inicio del buffer
* Esc+>; Va al final del Buffer
  Esc+f Avanza el cursor una palabra
  Esc+b Retrocede el cursor una palabra

Comandos para Copiar y BorrarCopy and Delete Commands

  Ctrl+d delete-char: Borra el caracter debajo del cursor ("Supr")
  Esc+d d delete-word: Borra desde el cursor hasta el final de la palabra inmediatamente por delante del cursor
* Cttl+k kill-line: Elimina la línea actual
* Ctrl+@ set-mark-command: Marca el comienzo de un área de texto a ser operada
* Ctrl+w kill-region: Borra el área de texto entre la marca y la posición actual del cursor.
* Ctrl+y yank: inserta en la posición actual del cursor actual o en la localización más recientemente borrada
  Esc+w copy-region-as-kill: Copia un área entre la marca y el cursor al buffer de borrado, de modo que pueda ser colocado en otro lado.

Comandos de Búsqueda

* Ctrl+s isearch-forward: Pide una cadena de texto y luego la busca desde la posición del cursor hacia adelante
  Ctrl+r isearch-backwardSimilar al anterior, isearch-forward, pero busca la cadena en sentido inverso:
  Esc+% query-replace: Pregunta una cadena de búsqueda y una cadena para reemplazarla

Comandos de Ventana y Buffer

  Ctrl+x 0 zero-window: Borra la ventana actual 
  Ctrl+x 2 double-window: divide la ventana actual en dos partees, permitiendo editar en dos localizaciones diferentes de un mismo archivo, o permitiendo ver dos ficheros distintos a la vez
  C-x b switch-to-buffer: Presenta un buffer distinto en pantalla
  C-x o other-window: Mueve el cursor a la otra ventana (asumiendo que existan dos ventanas o buffers abiertos a la vez
* C-x C-b list-buffers: lista los buffers cargados en memoria

Salir de Emax, corregir errores y otros

* Ctrl+x, Ctrl+c save-buffers-kill-emacs: Cuando termina la edición, guarda los buffers editados pero no guardados y vuelve al Shell.
* Ctrl+g keyboard-quit: Si mientras tipeaba un comando cometemos un error, esto aborta el comando en progreso.
  Ctrl+u universal-argument: Si desea repetir un comando varias veces ingrese este comando,
      ...seguido de un nro. (para la cantidad de veces)     ...seguido de un comando que desea repetir
* Ctrl+x u undo: deshace el último comando ingresado, en caso de haber cometido un error.
* Esc+x execute-extended-command: pregunta el nombre de un comando de emacs;;
  Le permite ejecutar un comando, si conocer cómo se llama. pero no puede recordar su atajo.