ex (editor de texto)

ex( /usr/bin/ex) es un editor orientado a líneas y parte de sistemas Unix y similares a Unix. Pertenece a una familia de editores que incluyen aquellos que se pueden usar de forma interactiva ( edy vi), pero también aquellos para operación por lotes ( sed) y que se derivan unos de otros.

exestá estandarizado en términos de funcionalidad y comportamiento por el estándar POSIX .

historia

El original exera una versión ampliada del entonces editor estándar de Unix ed, que a su vez formaba parte de Berkeley Software Distribution (BSD). El desarrollo posterior exmejoró edla facilidad de uso en comparación con, sobre todo, sin afectar el concepto básico del editor orientado a líneas. Más tarde, Bill tomó a Joyex como base y desarrolló el editor vi , primero en forma de paquete de macros y luego como programa independiente . Por lo tanto, vitambién se puede excambiar a un modo con un comando .

utilizar

configuración

Las opciones de configuración difieren de un sistema a otro debido a implementaciones ligeramente diferentes, incluso si siempre hay una base común. Todas las configuraciones válidas actualmente se pueden set allmostrar durante la sesión usando el comando . El siguiente ejemplo muestra esto, así como la propia llamada del programa en un sistema AIX actual (oslevel 7100-04-02-1614). El resaltado no está presente en el original y solo se usa para aclarar:

$ ex .kshrc
".kshrc" 129/2238
:set all
autoindent              mesg                            noshowmode
autoprint               nomodeline                      noslowopen
noautowrite             nonumber                        tabstop=8
nobeautify              nonovice                        taglength=0
closepunct='".,;)]}     nooptimize                      tags=tags /usr/lib/tags
directory=/var/tmp      paragraphs=IPLPPPQPP LIpplpipbp backtag
noedcompatible          partialcharacter=-              term=xterm-r5
noerrorbells            prompt                          terse
exrc                    noreadonly                      timeout
noflash                 redraw                          ttytype=xterm-r5
hardtabs=8              remap                           warn
history=0               report=5                        window=39
noignorecase            scroll=19                       wrapscan
linelimit=1048560       sections=NHSHH HUuhsh+c         wrapmargin=0
nolisp                  shell=/usr/bin/ksh              nowriteany
nolist                  shiftwidth=5                    wraptype=word
magic                   noshowmatch

Las configuraciones son de naturaleza declarativa, donde a un identificador se le asigna un valor (ver, por ejemplo, ttype en el ejemplo ) o lógicas. En el caso de configuraciones lógicas, el identificador se apaga tradicionalmente con un prefijo anterior noy se enciende sin este prefijo (ver por ejemplo nonumber , el comando set numberenciende la salida de números de línea, apaga set nonumbereste comportamiento).

Las instrucciones de configuración exse toman de los archivos cuando se inicia el programa. La configuración de todo el sistema está en /etc/exrc. La configuración relacionada con el usuario está en $HOME/.exrc. Si se exrcestablece la opción , se ./.exrcevalúa el archivo .

La configuración también se toma de la variable de entorno EXINIT .

A menudo, la funcionalidad de la proporcionan exotros programas, p. Ej. B. de vim . A continuación, el nombre del archivo z. B. Cambiar la configuración y evaluar archivos adicionales ( /etc/vim/vimrc, $HOME/.vimrc, ./.vimrc).

Uso interactivo y no interactivo

Incluso si estaba exdestinado a un uso interactivo, todavía es posible transferir una lista de comandos al programa stdin(ya sea como una canalización o como un documento aquí ) para su procesamiento automatizado. Esto permite utilizar el editor de forma similar seda los cambios automáticos.

En el siguiente ejemplo de secuencia de comandos, todos los archivos /some/wherecon nombres que txtterminan en se cambian en dichas sesiones de editor no interactivo (cada aparición de "abc" en las primeras tres líneas en "XYZ"). Tenga en cuenta que, a diferencia de sed, el archivo modificado no tiene que guardarse primero en un archivo intermedio temporal y luego copiarse sobre el original:

#! /bin/ksh
typeset chSrc="abc"
typeset chRpl="XYZ"
typeset fTgt=""
for fTgt in /some/where/*txt ; do
     ex - "$fTgt" <<-EOF
        1,3 s/$chSrc/$chRpl/g
        w
     EOF
done

particularidades

En algunos sistemas HP-UX , extambién se puede llamar mediante el comando e(que luego es un enlace fijo a ex).

enlaces web

Evidencia individual

  1. ^ Ex especificación del Grupo Abierto. Consultado el 7 de septiembre de 2016 .