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.
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í:
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
REGLAS de TECO:
- 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").
- 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.
- 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.
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. |
No hay comentarios:
Publicar un comentario