stringtranslate.com

Sam (editor de texto)

Sam es un editor de texto de múltiples archivos basado en expresiones regulares estructurales . Fue diseñado originalmente a principios de la década de 1980 en Bell Labs por Rob Pike con la ayuda de Ken Thompson y otros desarrolladores de Unix para el terminal de ventanas Blit que se ejecuta en Unix ; Posteriormente fue portado a otros sistemas. Sam sigue una estética modular clásica de Unix . Es internamente simple, su poder se aprovecha de la componibilidad de un pequeño lenguaje de comandos y la extensibilidad a través de la integración del shell.

Diseño y características

Sam está diseñado como dos programas sincrónicos: un intérprete de comandos y una interfaz de ventanas de mapa de bits orientada al mouse. El conjunto de comandos del intérprete está modelado a partir del editor de UNIX ed y puede usarse para operar el editor desde una terminal de texto estándar. Sin embargo, de forma predeterminada, Sam presenta su propia ventana de interfaz gráfica de usuario (GUI), samterm , que además permite operaciones de apuntar y hacer clic a través de menús contextuales emergentes. Esta estructura de dos procesos permitió a Sam acceder a archivos en sistemas host en red mediante la ejecución remota del proceso de acceso a archivos mientras ejecutaba la interfaz de ventanas localmente, evitando así la latencia en conexiones lentas.

Samterm presenta ventanas para los archivos que se están editando y una ventana de comando persistente que acepta entradas como comandos de Sam. Las operaciones de edición más comunes se realizan de forma rápida y natural con la interfaz de apuntar y hacer clic, que también funciona dentro de la ventana de comandos. Este último hecho permite editar (y reenviar) comandos como cualquier otro texto, una función heredada de la interfaz del terminal DMD 5620 .

Sintaxis de comando

La sintaxis de comando de Sam es formalmente similar a la de ed o ex , y contiene funciones condicionales y de bucle basadas en expresiones regulares (estructurales) y direccionamiento de alcance, e incluso comparte parte de la sintaxis de ed para dichas funciones. Pero mientras los comandos de ed están orientados a líneas, los de sam están orientados a selección. Las selecciones son cadenas de texto contiguas (que pueden abarcar varias líneas) y se especifican con el mouse (desplazándolo sobre una región de texto) o mediante una coincidencia de patrón . Los comandos de Sam toman estas selecciones como básicas, más o menos como otras herramientas de Unix tratan las líneas; por lo tanto, Sam maneja los patrones de varias líneas y sublíneas con tanta naturalidad como los patrones de líneas completas lo hacen ed , vi , AWK , Perl , etc. Esto se implementa a través de un modelo llamado expresiones regulares estructurales , que pueden aplicar recursivamente expresiones regulares. coincidencia de expresiones para obtener otras (sub)selecciones dentro de una selección determinada. De esta manera, el conjunto de comandos de Sam se puede aplicar a subcadenas identificadas por un contexto arbitrariamente complejo.

Sam extiende su conjunto de comandos básicos de edición de texto para el manejo de múltiples archivos, proporcionando comandos de bucle y condicionales basados ​​en patrones similares para la especificación de nombres de archivos. Cualquier secuencia de comandos de edición de texto se puede aplicar como una unidad a cada una de dichas especificaciones.

Deshacer infinitas

Sam fue uno de los primeros editores de texto en admitir la función de deshacer "infinita" para revertir cualquier cantidad de errores de edición. Esta característica, combinada con la facilidad de Sam para editar fácilmente sus propios comandos y, fundamentalmente, su pequeño conjunto de comandos ortogonales (que contiene sólo 33 comandos), representa la tendencia del programa hacia un umbral de aprendizaje bajo sobre otros "editores potentes" más expresivos.

Patrocinadores

Sam es el editor de texto preferido de varios programadores eminentes. Fue el primer editor de pantalla completa que le gustó a Ken Thompson . [1] Sam es el editor de texto utilizado por Bjarne Stroustrup , [2] Brian Kernighan , [3] [4] Douglas McIlroy y Tom Duff . [ cita necesaria ] Otros, como Dennis Ritchie , Rob Pike y Russ Cox, han hecho la transición a acme , un editor con el mismo lenguaje de comandos que sam, pero con una variedad de funciones adicionales, que incluyen acordes del mouse y mosaico automático de archivos abiertos.

La última versión de sam se escribió como parte del sistema operativo Plan 9, pero hay puertos de Microsoft Windows , macOS y X Window System [5] disponibles.

Ver también

Notas

  1. ^ Entrevista: Rob Pike responde, publicada por Roblimo el lunes 18 de octubre de 2004, Slashdot
  2. ^ Rzeszótko, Jarosław (16 de octubre de 2006). "Pregunta rígido, los grandes programadores responden". Stifflog (Entrevista). Archivado desde el original el 5 de octubre de 2011 . Consultado el 1 de noviembre de 2008 .
  3. ^ Kernighan, Brian (julio de 2000). "Una entrevista con Brian Kernighan" (Entrevista). Entrevistado por Budiu, Mihai . Consultado el 1 de noviembre de 2008 .
  4. ^ Fridman, Lex (19 de julio de 2020). Configuración de programación de Brian Kernighan | Lex Fridman. YouTube. El evento ocurre a los 44 segundos. Archivado desde el original el 12 de diciembre de 2021 . Consultado el 3 de octubre de 2020 .
  5. ^ "Deadpixi/Sam". GitHub . 17 de mayo de 2022.

Referencias

enlaces externos