Ecce
Ecce (Editor de Contexto Compatible de Edimburgo) es un editor de texto de culto escrito en la década de 1960 para las terminales teletipo de la minicomputadora PDP-10. Conformó uno de los primeros editores conocidos como modales (con modo de inserción y de comandos), y durante mas de 25 años contó contó con seguidores de culto en los entornos multiusuario.
El original fue escrito en lenguaje BCPL por Hamish Dewar, y ha sido reescrito en lenguaje C en 1984.
Compilar Ecce
Ecce no está disponible en texto-plano, pero podrás compilar por tí mismo su código fuente del programa ecce.c y usarlo. Hazlo con:
cc ecce.c -o ecce
Uso
Ejecución
La sintaxis para ejecutar Ecce es:
./ecce origen destino
Como Ecce es antediluviano ni siquiera es capaz de crear por si mismo un fichero en Unix, por tanto podrías ejecutarlo creando antes un fichero origen
desde la shell con el comando touch y opcionalmente un fichero destino
, por ejemplo:
touch texto.txt ; ./ecce texto.txt destino.txt
Edición básica
Ecce te presentará la memoria disponible para su uso:
Buffer space = 768 KBytes Ecce >
El editor cuenta con dos prompts de acuerdo al modo en el que esté operando:
- Modo de Comando:
>
- Modo de Inserción de texto:
:
Para el uso más sencillo posible de Ecce, en el prompt de comandos >
introduce el comando g0
y presiona la tecla Intro. Al usar este comando Ecce conmutará al modo de inserción, y recibirás un prompt de inserción texto en forma de :
.
En el prompt :
mecanografía las líneas de texto deseadas. Al presionar la tecla Intro, introducirás dicha línea al buffer de memoria que forma el documento de entrada de Ecce. Continúa agregando mas líneas en blanco presionando la tecla Intro.
Si en lugar deg0
indicas el comandog
, se generaría una única línea en blanco, tras lo cual, al introducirle texto, recibirías el mensajeEND
si no existen otras líneas.
Una vez que hayas finalizado la inserción de texto, podrás retornar al modo de comandos desde el prompt de inserción de texto :
, ingresando :
. En consecuencia volverás al prompt de comandos >
.
Guardar y salir
Desde el prompt de comandos >
, podrás guardar los cambios en al fichero destino y cerrar el editor, utilizando el comando %C
.
Comandos básicos
Imagina a Ecce como una antigua máquina de escribir. Podrás desplazar la posición actual de edición en el documento (llamada puntero).
Comando | Acción |
g | Genera una única línea nueva |
p | Imprime la línea actual del puntero |
m | Baja el puntero una línea |
m- | Sube el puntero una línea |
k | Borra la línea actual |
%C | Guarda los cambios al fichero destino y sale de Ecce |
Movimiento y corrección
r | Se mueve a la derecha un caracter en la línea actual |
l | Se mueve a la izquierda un caracter en la línea actual |
e | Borra un caracter en la línea actual |
Comandos de Ecce
Para introducir estos comandos opera en el modo de comandos.
A | Ajusta el largo |
B | Divide la línea en dos en el puntero |
C | Cambia mayúsculas con Shift derecho |
C- | Cambia a minúsculas con shift izq |
D/texto | Borra primer ocasión del texto |
D-/texto | Borra interación previa de texto |
E | Borra caracter a la derecha del puntero |
E- | Borra caracter a la izquierda del puntero |
F/texto | Busca texto a continuación |
F-/texto | Busca texto anteriormente |
G/texto | Inserta línea de texto luego del puntero |
G- | Sube una línea |
I/texto | Inserta texto a la derecha del puntero |
I- | Inserta texto a la izquierda del puntero |
J | Une la siguiente línea |
K | Borra línea actual |
K- | Borra línea anterior |
O/texto | Sobreescribe la línea con texto |
P | Imprime la línea actual |
Uso Avanzado
Ecce dispone de opciones más avanzadas que te permiten editar con mayor potencia que ed. Por ejemplo, si introduces un número n junto a tu comando, y ejecutarás dicho comando recursivamente n veces. En esta tesitura:
p23 | Imprime las 23 líneas siguientes |
m10 | Asciende diez líneas |
g5 | Deja 5 líneas de texto en blanco |
Cualquiera de estos comandos básicos puede adjuntarse en reversa si lo antecedes con un -
. Por ejemplo:
m-10 | Retrocede diez líneas |
Buscar y reemplazar
i/texto/ | Inserta una cadena “texto” aquí en la línea. |
f/texto/ | Busca “texto” indicado. |
Como en el caso anterior, estos pueden repetirse indicándole números apropiados:
f/texto/4 | Busca la 4ta. iteración de “texto” |
r40 | Mueve a la derecha 40 caracteres |
Estas órdenes pueden encadenarse juntas:
m23 f/texto/ p3