Unison File Synchronizer

Noviembre 7, 2006

Cuando se tienes más de una estación de trabajo, como es mi caso, sobremesa y portátil, mantener la información actualizada consistia hasta hace poco en copiar el contenido del portátil al sobremesa , y viceversa. Por suerte para nosotros eso se terminó.

Unison me permite sincronizar directorios, de manera local o remota y mantener la información actualizada, añadiendo las diferencias, o cambios producidos en el directorio, como bien puede ser, la modificación de un archivo o su eliminación. Lo bueno que tiene Unison frente aplicaciones como rsync, es que la sincronización se realiza de forma bilateral, y al contrario que rsync , el cual lo realizaba en un solo sentido. Es decir, lo que yo modifique en una maquina se modificara en la otra también cuando haga la sincronización. En este documento hare referencia a Selkis como mi portáltil y Osiris como mi equipo de sobremesa.

  1. Instalación y configuración

    La instalación en sistemas Debian y derivados, bastará con hacer un :

    #aptitude install unison

    Unison se puede configurar de varias maneras, yo he elegido trabajar sobre SSH aunque también se pueden emplear Sockets. Lo primero es crear un archivo diciendole que directorios nos interesa sincronizar asi, como el servidor con el cual queremos sincronizar. Para Selkis he creado el siguiente archivo :

    $ emacs -nw ~/.unison/osiris.prf
    La estructura de este archivo es la siguiente:
    osiris.prf

    auto = true
    batch = true
    root = /home/nephyer
    root = ssh://osiris
    path = Programacion
    path = Facultad
    ignore = Path */.directory
    ignore = Path */Olds
    ignore = Name {olds,*~}
    log = false


    Estas son las opciones que tengo puestas, y las cuales paso a describir a continuación:

    auto Con valor a true no pide confirmación para modificaciones no conflictivas.
    batch El valor a true indica que no haga ninguna pregunta, elimina el modo interactivo, un tanto molesto para mi propósito.

    Estas opciones las he escogido con estos valores porque me interesa que este todo automatizado mediante un script que describiremos más adelante, y al que posteriormente añadiremos a una entrada al “crontab”.
    root Hay rutas relatitvas, que son aquellas que hacen referencia a esa ruta dependiendo donde se ejectue el comando ,es decir buscará esa ruta desde donde se llame a unison, con las rutas absolutas se parte del raiz del sistema de archivos, y dará igual donde ejecute el comando, con lo cual yo veo más conveniente usar rutas absolutas, así no se depende desde donde se llame a unison. El otro “root” que se le pasa es el sitio remoto, o local con el cual sincronizar.

    path Como su nombre indica, son los directorios , o carpetas que se desean sincronizar.
    ignore Se le pasa una expresión regular, la cual unison procesará e ignorará lo que coincida con dicha expresión, en mi caso que omita los directorios ocultos – ignore = Path */.directory – o los que terminan en algo.extension~.

    log Desactivado no crea log de las modificaciones.

    Ahora cada vez que realicemos una modificación en Selkis simplemente ejecutare :

    $ unison osisris

    Resulta que al trabajar sobre SSH, nos pedirá la contraseña cada vez que queramos sincronizar, lo cual es molesto si se pretende automatizar la sincronización. Por ello el siguiente paso explica como configurar SSH para que no nos pida la contraseña:

  2. Evitando el password en SSH

    Primero que todo debemos crear una clave pública y otra privada para ssh, en el cliente, en nuestro caso Selkis el portátil. Para ello ejecutaremos el comando que se indica a continuación:


    nephyer@selkis:~$ ssh-keygen -t dsa


    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/nephyer/.ssh/id_dsa):
    Created directory '/home/nephyer/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/nephyer/.ssh/id_dsa.
    Your public key has been saved in /home/nephyer/.ssh/id_dsa.pub.
    The key fingerprint is:
    2d:b3:67:9a:5b:72:9c:c8:c4:68:fc:42:c9:f6:0c:13

    La frase que pide de entrada dejarla en blanco.Una vez hemos realizado este paso, sólo hemos de copiar la clave pública a nuestro servidor, o equipo remoto, y añadirlo archivo .ssh/authorized_keys, para ello bastaria con hacer un simple

    cat id_dsa.pub >> authorized_keys

    Donde id_dsa.pub es nuestra clave pública creada con el comando anterior, la cual se encuentra ubicada en /home/usuario/.ssh/. Yo he escogido un modo más elegante, y del cual disponemos:

    ssh-copy-id -i .ssh/id_pub.keys nephyer@osiris

    Con esto conseguimos el mismo efecto y no necesitamos llevar la clave pública a cada máquina con la que queramos sincronizar.

  3. Automatizando la sincronización

    Ahora simplemente ejecutando desde el terminal

    $ unison osiris

    obtendriamos la sincronización de los directorios , un ejemplo de la salida producida en el portátil es:


    nephyer@selkis:~$ unison osiris
    Contacting server...
    Looking for changes
    Facultad/2005-2006/ARS/Practicas ARS
    Facultad/2005-2006/LP/workspace/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
    Programacion/hathor/C++/Problemas Examenes/dni.cpp
    Waiting for changes from server
    Reconciling changes
    local osiris
    deleted chgd dir Facultad/2005-2006/ARS/Simulador Routers
    No updates to propagate

    Ahora sólo nos queda automatizar todo este proceso, simplemente me he creado un script el cual ejecuta el comando anterior , y me informa de si su ejecución tuvo exito. Para ello es importante conocer los valores de salida de unison, los cuales se nos facilita en la página de la apliacción.

    Exit Codes

    * 0: successful synchronization; everything is up-to-date now.
    * 1: some files were skipped, but all file transfers were successful.
    * 2: non-fatal failures occurred during file transfer.
    * 3: a fatal error occurred, or the execution was interrupted.

    A partir de esta información ya podemos realizar el script :


    # unison.sh
    #
    #!/bin/bash
    unison osis 2>&/dev/null


    case "$?" in
    0|1)
    kdialog --msgbox "Sicronizacion de archivos correcta."
    ;;
    *)
    kdialog --error "Fallo en la sincronizacion tipo: $? "
    exit 1
    ;;
    esac


    exit 0

    El script se puede modificar y tratar los otros codigos de salida, no han de ser estos necesariamente. Ahora ya solo nos queda introducir una entrada en el cron, para que se ejecute. Como pasao gran parte de mi tiempo en fuera de casa, me interesa ponerlo a una hora que este , sino no servira ;) , así que la mejor hora es la de cenar, por ello cuando ejectuemos :

    $crontab -u usuario -e

    y añadimos la linea:


    # Ejectua el Script de sincronizacion todos los dias de la semana, de todos los meses, a las 21:30.
    30 21 * * * /home/nephyer/Scripts/unison.sh
    No me he parado a explicar el script ni el uso de cron, por qué sino esta entrada sería demasiado larga, asi que Googleando un poco se encuentra todo. Bueno, hasta la próxima.


Manual de Unison


Ya tengo portátil!!

Octubre 27, 2006

Por fin he podido comprarme uno de los objetos más preciados que todo aficionado a la informática desea. El modelo en concreto es un Sony Vaio VGN-SZ2M/B, le he instalado Kubuntu, y la verdad es que va muy bien, sólo presentó problemas para configurar la tarjeta wireless, pero por lo demás nada. En cuanto a la duracíon de la batería, estoy muy contento, en modo Stamina sin darle mucha guerra llega a 4 horas y un poquito más, la pantalla está muy bien, ni demasiado pequeña ni demasiado grande, justo a mi medida. Por último decir que el teclado es una verdadera gozada, comodo a más no poder. En resumen, una buena compra.


Esta copia de windows no es original.

Octubre 20, 2006

Resulta que esta mañana me ha llamado un amigo para que visitara su equipo, el cual hacía cosas bastante extrañas – explicaciones suyas por telefono-.

Al final resulta que Micro$oft ha realizado algo (1) “positivo” para el mundo del software libre, y es putear a los usuarios con copias piratas de su SO. Entre las cosas que he advertido son:

  1. Pantalla de selección del usuario: puede obeservarse en la parte derecha inferior de la pantalla un logo con el mensaje;
    Pida Software Microsoft Original a continuacion se puede observar otro de similar contenido:
    “Esta copia de Windows no es original.
    Podría ser víctima de una falsificación de software.”

    (Aún a pesar de saber que la gente usa copias ilegales de su SO, son educados ;) )

  2. Pop-Up: Esta copia de Windows no es original, junto con dos botones, uno con Obtener Original y otro que empieza con una cuenta atrás de 4 segundos, y al final deja pulsar, con el mensaje Resolver Luego ( El cual seguro pulsará todo el mundo, ayy!! no dejes para mañana…)
  3. En el escritorio: Aparece otro pop-up pequeño en la barra de tareas( a la derecha) diciendo lo mismo que al entrar al sistema.
    Entre las cosas molestas, no se pueden usar los accesos directos que hay en el escritorio, y algunas apliaciones no pueden ser lanzadas.

  4. Anulados atajos de teclado : Algunos, como por ejemplo [Bandera Windows] + Pause, para ver las propiedades del equipo, o el administrador de tareas [Ctrl] + [Alt] + [Supr], el cual me ha resultado especialmente gracioso, pues sale una ventanita diciendo: “El administrador de tareas ha sido deshabilitado por un administrador.” Con la cantidad de personas que administrarán el equipo de mi amigo, él sobre todo, que no conocía la existencia de la cuenta por defecto “Administrador” ;)

No se si habrán otras “Mods” más, esto es lo que he podido sacar, si alguien ha visto algo más que lo diga. Antes en (1) he dicho que hacían algo bueno por el SL, y así lo creo, ya que la gente tiene la opción de aguantarse con el sistema molesto que tienen, o adquirir una solución legal, pero nada económica.
A mi amigo le he planteado la opción de probar GNU/LinuX, que no le saldrán popups de esos, salvo alguno esporádico de FireFox cuando casca ;) .


Tatmak

Octubre 15, 2006

Es una palabra Turca que significa “probar”. El caso es que muchas veces, en la vida, a uno le gusta probar , experimentar, pero el hecho de no decantarse por algo hace que uno tenga ligeros esbozos sobre el tema el cual queria experimentar, y eso amigos, me pasa diariamente. Ser constante no es facil, y cuando se consigue puede transformarse en monotonía, hay que encontrar el equilibrio. En fin, bienvenidos a un sin fin de pruebas!! ; )


Emacs y KDVI

Junio 15, 2006

Si trabajas con LateX, y tu editor es favorito es Emacs, sigue leyendo!!
Cuando estás trabajando en Emacs, puede ser tedioso tener que irse al directorio de trabajo seleccionar el .dvi y abrirlo. Bien hay una manera más sencilla, las busquedas directas permite hacer eso con una sola combinación de teclas en Emacs.

Es necesario descargarse kdvi-search.el el cual nos permitirá lanzar la ejecución directa de KDVI desde Emacs, aunque no actualiza a tiempo real, es decir, cada cambio que se realiza en nuestro archivo .tex hay que compilarlo, para poder visualizarlo correctamente.

El script que acabamos de descargar lo podeís situar en vuestro directorio favorito para scripts de Emacs, por ejemplo, ~/emacs-scripts/, da igual cual selecciones, pues ahora toca configurar nuestro archivo .emacs. Para que funcione todo correctamente, hay que añadir las siguientes lineas:

(add-to-list ‘load-path (expand-file-name “~/emacs-scripts/”))
(require ‘kdvi-search)
(add-hook ‘LaTeX-mode-hook (lambda () (local-set-key “\C-x\C-j” ‘kdvi-jump-to-line)))
(add-hook ‘tex-mode-hook (lambda () (local-set-key “\C-x\C-j” ‘kdvi-jump-to-line)))

Ahora simplemente lanzar Emacs, y a trabajar, para ejecutar KDVI, simplemente ejecutar la combinación de habeís puesto, en este caso Ctrl+x Ctrl+j, si quereís modificar la combinación que lo lanze, sois libres. Hasta la próxima.

Mas información acerca de KDVI


GNU/LinuX para progenitores

Febrero 21, 2006

Bueno, pues tan fácil y claro como suena, enseñando GNU/LinuX a mis padres, como yo utilizo Debian, pues evidentemente ellos también. De momento el que más lo trabaja es mi Padre, que se pasa el día metido, buscando cosas que le interesan con el FireFox, también le he enseñado a manejar muy por encima el Amarok, y algunos accesos de teclado rápidos, que a mí personalmente es lo que más me atrae de Amarok. Respecto al correo le enseñé a abrir una cuenta de correo, dos veces, ya que al hombre se le olvidó la contraseña, pero no pasa nada, para eso estamos no.

Dentro de nada le pongo el Thunderbird, para que pruebe, en fin. Cualquier sugerencia será bienvenida. No hay problemas, salvo que he de repetirle las cosas mil veces, supongo que igual que él tuvo paciencia conmigo de pequeño ahora me toca ser paciente a mi, ¿no?. ; )


Instalacion de Eclipse en GNU/LinuX

Diciembre 29, 2005

Lo primero es bajarse el material necesario para nuestra particular receta:

  • Eclipse ( Has bastantes mirrors de donde puedes descargarlo)
  • JDK ( Bajaros la versión que mejor os vaya, yo personalmente utilizo la 1.5 )

    Ahora viene la instalación, la cual es tremendamente sencilla; Situaros en el directorio donde vayais a instalar ( yo lo tengo en /opt/java/jdk1.5/ ) , ejecutais el .bin correspondiente a la versión de JDK que os habeis bajado y antes de esto, aseguraros que tiene permisos de ejecución. Ahora creamos enlaces simbólicos en /usr/bin :

    Mlin:/usr/bin/# ln -s /opt/java/jdk1.5/java .

    Mlin:/usr/bin/# ln -s /opt/java/jdk1.5/javac .

    Mlin:/usr/bin/# ln -s /opt/java/jdk1.5/javadoc .

    A continuación descomprimir Eclipse en el directorio que mas guste ( en mi caso en /opt/eclipse ). Ahora avisaros que no trateís de crear enlaces de el ejecutable de eclipse a /usr/bin/ o cualquier otro sitio, ya que este software no permite el uso de enlaces : ) . Ya está todo resuelto y listo para programar en Eclipse!!


  • Splashy: Arranque con color, en Debian

    Octubre 30, 2005

    Bueno, muchos habreís visto arranques con barras de progreso donde se oculta todo el proceso de arranque, lo cual es interesante cuando la persona que va estar delante del equipo no tiene por que ver lo que a su parecer es una lluvia de información sin sentido. Antes esto se podía realizar mediante bootsplash pero era una labor tediosa pues requeria parchear el kernel y luego compilar, y habías de repetir este proceso para cada imagen que quisieras. Con splashy, es todo más sencillo :

    Primero debemos añadir una línea a nuestro source.list para obtener Splashy:

    deb http://splashy.alioth.debian.org/debian/ unstable main

    A continuación realizar un update y ejecutar # apt-get install splashy

    Una vez instalado debemos editar el menu.lst si trabajais con Grub, o lilo.conf si alguien utiliza LiLo. Cuando editeis el archivo buscar una línea que ponga

    # kopt=root=/dev/hda3 ro ( como ya sabreis 3 indica la partición donde está mi raiz )

    Y añadir al final vga=792 ( 16 M de colores)
    # kopt=root=/dev/hda3 ro vga=792 Muy importante, no descomentar la línea esta!!! Dejar #.

    Ahora solo queda hacer update-grup y a funcionar.

    Si quereis cambiar las imagenes , simplemente ir a :

    /etc/splashy/themes/default/

    Y sobreescribir la imagen background.jpg que deseais ver al arranque.

    Hay un archivo de configuración muy sencillo, config.xml el cual nos permite configurar el tamaño de la barra de progreso, situación de la pantalla, colores de la barra, imagen de reinicio… Mirar los parámetros que tiene, no son muchos. Un consejo es que os creeis distintos splashy-themes, y os los guardeis. Ejemplo: decomprimir y guardar en /etc/splashy/themes/default/. Mi splashy-theme acordaros de quitar la extensión jpg. Y el archivo que me he hecho para el shutdown, a partir de la imagen original ( simplemente con gimp puse shutdown en la parte superior, pero se puede mejorar) . shutdown.jpg Nada, ahora solo queda dejar volar la imaginación.!!


    Instalando Debian con debootstrap

    Octubre 30, 2005

    Instalar con debootstrap tiene su utilidad si quieres pasar de un sistema LinuX ( corriente ) a un Debian GNU/LinuX ( de lo mejorcito ). Esta utilidad nos descarga todos los paquetes necesarios para tener un sistema base con Debian, para ello realizaremos los siguientes pasos:

    Creación del directorio. Instalación de debootstrap.

    Hay que crear un directorio de instalación, una partición distinta o un disco duro distinto, a elección de cada uno. Yo creé el directorio /mnt/debinst una vez creado montas la partición correspondiente. Muy importante es dar la opción de bootable a la partición cuando le deis formato, con cfdisk se puede hacer.

    # mount -t ext3 /dev/hdb1 /mnt/debinst

    Una vez montado descargais debootstrap de acuerdo a la arquitectura de vuestra máquina, el enlace es para x86. Instalais el paquete mediante
    dpkg -i debootstrap-2.x.x ( es un ejemplo )

    Una vez instalado procederemos a la instalación del sistema base, simplemente ejecutando el comando con los siguientes parámetros:

    # debootstrap –arch i386 sarge /mnt/debinst http://ftp.rediris.es/debian

    Argumentos

    –arch —> especifíca para que arquitectura se crea. AMR,i386 i64

    sarge —> seleccionamos la versión estable, perfectamente se puede sustituir por etch o sid.

    /mnt/debinst especifíca donde queremos descargar todos los paquetes.

    http://ftp.rediris.es/debian ( elegir vuestro repositorio favorito )

    Conforme se ejecuta la orden comenzará ha descargarse los paquetes necesarios para tener un sitema base en la ruta indicada.

    Creando entorno chroot

    Introducción a chroot

    El comando chroot lo que permite es cambiar la raiz, es decir, le estoy dicendo que ahora mi raiz va ha estar localizada en otra parte. La ventaja que tiene esto es que ese entorno nuevo no puede comunicarse con el exterior ( en teoria ), es decir no hay acceso a los procesos externos de ese entorno, lo cual implica una mayor seguridad, y en ocasiones es utilizada para montar servidores web, ftp o simplemente para almacenar logs del sistema, de manera que no se tenga acceso a estos.

    Para crear el entorno chroot simplemente ejecutar ( como root ) :

    # chroot /mnt/debinst /bin/bash

    Una vez ejecutada esta orden, apareceis en raiz, pero ahora, la raiz a cambiado, de manera que /mnt/debinst pasa a ser la raiz. Tendréis que configurar todos los ficheros que os hagan falta y lo primero de todo montar el fichero proc, si no no hareis nada a derechas, ya que este sistema permite que el kernel y los módulos envien información a los procesos que están corriendo. Para ello simplemente ejecutar la siguiente orden:

    # mount -t proc proc /proc ( Parece un poco redundante, si lo se : P )

    Ahora solo queda configurar algunos archivos

    Apt
    echo “deb http://ftp.rediris.es/debian/ sarge main contrib non-free” >>/etc/apt/sources.list

    Red
    echo “auto eth0″ >>/etc/networking/interfaces
    echo “iface eth0 inet static” >> /etc/networking/interfaces ( en algunos casos sustituir static por dhcp y no seguir los pasos que siguen)
    echo “address X.Y.Z.W” >> /etc/networking/interfaces ( poneis la IP)
    echo “netmask X.Y.Z.W” >>/etc/networking/interfaces ( lo mismo, pero con mascara de red)
    echo “gateway X.Y.Z.W” >> /etc/networking/interfaces ( puerta de enlace)

    Módulos
    Como me ha apuntado un amigo, no es que tengais que cargar ese módulo exactamente, sino el corresondiente a vuestra tarjeta. Este en concreto es para las tarjetas con chipset Realtek 8139.

    echo “8139too” >> /etc/modules ( si no cargais esto, al reiniciar no se os activar la red por muy bien configurado que este el archivo anterior )

    Configuración de GRUB

    LLegados aquí solo queda dos opciones, instalar un cargador de arranque ( GRUB o Lilo ) , o arracar desde otro sistema que es la opción que yo llevé a cabo.
    Para ello añadir esta linea, en vuestro /boot/grub/menu.lst :
    El parámetro vga=791 o vga=0×305 me permite ver la consola a una resolución de 1024×768 con 65535 colores.

    title Debian GNU/Linux DebootStrap
    root (hd1,0)
    kernel /boot/vmlinuz-2.6.10. root=/dev/hda2 vga=791 ro
    initrd /boot/initrd.img-2.6.10
    savedefault
    boot

    Par los que usen LiLo :

    image=/boot/vmlinuz-2.6.10
    label=linux
    initrd=/boot/initrd-2.6.10.img
    read-only
    root=/dev/hdb1

    Bueno con esto la proxima vez que arranqueis ya podreis seleccionar vuestra Debian, completamente nueva y con lo básico, aún que parece un largo proceso os digo que se tarda mucho menos que desde cd, y luego solo queda instalar las X y vuestro escritorio favorito, y todas las aplicaciones que vengan.

    Bibliografía:

    Acerca del sistema proc

    Debootstrap

    Chroot
    Entornos Chroot en Debian este otro es de Jesus González Barahona, está muy bien explicado, profesor de universidad Rey Juan Carlos, si teneis oportunidad de oir alguna charla suya hacerlo.

    Bueno hasta aquí todo!! en breve más!!


    Conociendo GNU/Emacs I

    Octubre 21, 2005

    A petición de un amigo muy insistente voy a poner los keystrokes de Emacs que más suelo utilizar cuando programo, paro los que no conozcan Emacs ( Editor MACROS, de ahí su contracción), decir que es muy potente, y que cada día me sorprende más, estava escribiendo la serie de combinaciones que más utilizo y las que conozco y me he dado cuenta que se bastantes, con lo cual, en vez de soltar de golpe todas las que conozco, voy ha relizarlo en varias partes, las que considere oporturnas para que no se haga pesado leer todas de golpe, en esta primera remesa voy a poner las que más se usan a nivel básico, es decir movimiento, ficheros , trabajo con buffers, búsqueda….

    Simbología

    ESC-x o Meta-x : Lo veo en muchos sitios, y es lo mismo, pero és más comodo usar Alt-Izq ( Meta ), o por lo menos a mi me lo parece.

    Ctrl-x ( Esto significa que sin soltar control, pulsar x)

    Evidentemente esta recopilación será de utilidad para alguien que haya manejado Emacs minimamente, aunque no por ello no quiere decir que no sirva para la iniciación.

  • Moviendose por Emacs

    Ctrl-n ( Avanza a la línea siguiente)
    Ctrl-p ( Retrocede a línea anterior)
    Ctrl-f ( Avanza un caracter )
    Ctrl-b ( Retrocede un caracter )
    Ctrl-a ( Ir al principio de la línea )
    Ctrl-e ( Ir al final de la línea )
    Ctrl-v ( Avanzar una página )
    Ctrl-j ( Retorno )
    Ctrl-m ( Retorno , hay diferencia con la anterior, si se pulsa estando en el shell se ejecuta la orden que esté escrita, en el otro caso pasa de línea)
    Meta-f ( Avanzar de palabra en palabra )
    Meta-b ( Retrocede una palabra )
    Meta-a ( Ir al incio de un parrafo )
    Meta-e ( Ir al final de un parrafo )
    Meta-v ( Retroceder una página )
    Meta- ( Ir al final del buffer )
    Ctrl-x Ctrl-c ( Salir de Emacs )
    Ctrl-z ( Suspender Emacs, en consola se pone en background, para volver basta con escribir en la consola fg, mientras que en las X simplemente se minimiza )

  • Buffers y Frames

    Ctrl-o ( Cambias de buffer )
    Ctrl-x Ctrl-b ( Listado de los buffers abiertos )
    Ctrl-b ( Cambias al buffer siguiente)
    Ctrl-x 2 ( Split de la pantalla en dos, horizontalmente )
    Ctrl-x 3 ( Lo uso muchísimo, hace split vertical )
    Ctrl-x 5 2 ( Abre en un ventana nueva el buffer en el que estas, ojo!! si sales de esa venta es como si cierras el original )
    Ctrl-x 5 0 ( Cerrar ventana )
    Ctrl-x { ( Mueves el scroll hacia la izquierda )
    Ctrl-x } ( Mueves el scroll hacia la derecha )

  • Marking y eliminación
    Ctrl-space o Ctrl-@ ( Establece marco de selección )
    Ctrl-w ( Cortar )
    Meta-w ( Copiar)
    Ctrl-y ( Pegar )
    Ctrl-d ( Elimina un caracter)
    Ctrl-k ( Elimina la línea actual )
  • Ficheros
    Ctrl-f ( Arbrir un archivo )
    Ctrl-x Ctrl-s ( Guardar cambios un archivo )
    Ctrl-x Ctrl-w ( Guardar como )
    Ctrl-d ( Introducir directorio )
    Ctrl-x i (Insertar archivo )
  • Búqueda y reemplazo
    Ctrl-s ( Buscar hacia delante )
    Ctrl-r ( Buscar hacia atrás )
    Ctrl-g (Abortar lo que se está haciendo, en este caso la búsqueda, sirve para todo )
    Meta-% ( Reemplazo, te pide la palabra a buscar y la que quieres sustituir, luego si no dices nada, pide confirmación una por una, salvo que introduzcas el carácter ‘!’ )
    Meta Ctrl-s RETURN ( Buscar mediante una expresión regular hacia delante )
    Meta Ctrl-r RETURN ( Buscar mediante una expresión regular hacia atrás )
  • Bueno, con esta primera parte creo que vamos bien, son combinaciones básicas, y se que al principio cuesta acostumbrase, sobre todo a dejar de usar las flechas para moverse por el texto, pero con el tiempo aprecias la fluidez y rapidez de Emacs.