Ubuntu Peronista@TTBP

Este es un espejo en el Tilde Blog Project del blog original Ubuntu Peronista. Se encuentra disponible en Tildeverso únicamente con fin histórico.



20 october 2022

¿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:

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.

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