| Documentación | | ![]() | ![]() |
Arachnophilia es CareWare
Entrada-salida de propósito general
Funciones específicas del compiladorLas funciones descritas en esta sección pueden utilizarse para interactuar con su sistema operativo y cualquier programa que se ejecute bajo él. Una de las funciones lee la salida de un programa, mientras la otra pasa el documento o la selección de Arachnophilia actual a un programa para procesarlo.
- SystemCom
SystemCom ejecuta un comando de sistema y/programa e inserta el resultado en el documento actual. En el editor macro de Arachnophilia un ejemplo podría verse así esto:
Linux example: [SystemCom:date] Windows example: [SystemCom:date /T]Este ejemplo consulta el sistema operativo para la fecha y hora actuales en Linux (solo la fecha en Windows), y lo inserta en el documento actual en la ubicación del cursor de edición.
Es importante enfatizar que cualquier comando o programa del sistema, incluidos los programas o los guiones escritos por el usuario, puede usarse con este comando. Aquí hay otro ejemplo:
Linux example: [SystemCom:ls -la (path)] Windows example: [SystemCom:dir (path)]En este ejemplo, se adquiere una lista de directorios para una (ruta) dada y el resultado se inserta en el documento.
- SistemaProceso
SystemProcess lleva lo anterior a un nivel superior — lee el documento/selección actual, lo transmite a un programa externo para procesarlo, e inserta el resultado en el documento en la posición de edición..
Aquí hay un ejemplo — vamos a usar un script de Python corto que convierte el texto transmitido a MAYÚSCULAS, solo para mostrar cómo funciona la característica. Aquí está la lista de scripts de Python:
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys for line in sys.stdin.readlines(): line = line.upper() sys.stdout.write(line)El guión anterior puede servir como una plantilla para cualquier procesamiento de texto similar que el lector pueda cuidar de realizar usando cualquier reglas de procesamiento de texto deseadas (y cualquier otro lenguaje de scripting preferido por el lector).
Para usar este script (u otro similar), uno debería crear una macro Arachnophilia similar a esta (usando estas instrucciones como guía):
[SystemProcess:path/to/script/name.py]Entonces uno puede crear un botón de barra de herramientas o entrada de menú para activar esta macro de una manera conveniente. Cuando esta macro es activada, Arachnophilia adquiere el documento actual o el texto de selección y lo transmite al script de Python. El script de python procesa el texto y regresa it to Arachnophilia, where it's inserted into the document.
Recuerde sobre el sistema de macro de Arachnophilia que, si no se realiza una selección de documento, el texto completo del documento se proporciona a la macro y es reemplazado totalmente por el resultado, pero si se realiza una selección, solo la selección se cambia por la macro.
La diferencia entre SystemCom y SistemaProceso es que el comando anterior no entrega el texto del documento al programa externo, mientras que el segundo sí. Asegúrese de usar el comando correcto para el resultado deseado:
- SystemCom no perturbará el texto de su documento (a menos que se haya realizado una selección), solo inserta la salida de un programa en el cursor de edición.
- SistemaProceso toma todo el contenido o la selección del documento y lo reemplaza con la salida del programa externo.
- En todos los casos, si obtiene un resultado no deseado, simplemente haga clic en el
Deshacer botón de la barra de herramientas para recuperar.
Las características que se describirán a continuación se utilizan más frecuentemente con compiladores, pero cualquier programa puede activarse e interactuar con Arachnophilia. Para las actividades relacionadas con el compilador, la activación del programa usa una de dos macros del sistema, dependiendo de los requisitos:
- El primer es más adecuado para los compiladores que podrían devolver mensajes de error. [SystemExec:arg] provoca que un programa con nombre se lance con argumentos adicionales opcionales. Aquí hay un texto de macro típico para este comando:
[Guardar][SystemExec:g++ [Nombre de archivo]]En esta macro, el archivo mostrado se guarda en su ubicación de almacenamiento ya establecida, luego se lanza un compilador C++ popular con el nombre del archivo como un argumento (recuerde que las macros de Arachnophilia pueden anidarse dentro de otras macros de Arachnophilia). If the com piler produce cualquier mensaje de error, serán listados en la parte inferior del panel del documento, y el cursor de edición del documento se ubicará automáticamente en la primera línea del error reportado. Como esto:La macro anterior se utilizaría para programación interactiva — después de algunos cambios en el archivo de origen, el operador simplemente activaría esta macro con una pulsación de tecla. Si se informaran algunos errores, podrían corregirse interactivamente (el "panel de retroalimentación" se muestra en la imagen arriba puede hacer clic para mover a cada error por turno) y la macro podría activarse nuevamente.![]()
- Otro comando -- [SystemConsole:arg] — es más adecuado cuando se anticipa alguna interacción con un programa, y se necesita una ventana de terminal. Aquí hay macros de ejemplo:
Estos comandos lanzan intérpretes de shell en las plataformas respectivas, utilizando un terminal interactivo simple, lanzados en una ventana separada, para manejar E/S.Linux example: [SystemConsole:bash -i] Windows example [SystemConsole:cmd /k]Es lamentable que estas dos macros relacionadas con el compilador tengan nombres que son tan similares a los más nuevos descritos en la primera sección, pero estas dos fueron escritas hace años, y decidí no renombrarlas porque esto podría romper las macros de usuario existentes.
| Documentación | | ![]() | ![]() |