edlin

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
edlin [2023/07/28 17:36] peronedlin [2023/11/14 17:11] (actual) – [Uso básico] peron
Línea 1: Línea 1:
 =====FreeDOS EdLin==== =====FreeDOS EdLin====
  
-**FreeDOS EdLin** es un [[editores de texto|editor de texto]] orientado a líneas que replica el uso del editor tradicional de MS-DOS 3.2, del mismo nombre. Verás que guarda ciertas similitudes al editor [[ed]].+**FreeDOS EdLin** es un [[editores de texto|editor de texto]] orientado a líneas libre que replica el uso de un editor privativo del mismo. Verás que guarda ciertas similitudes al editor [[ed]]
 + 
 +>EDLIN original fue programado por Tim Paterson en agosto de 1980. Al mismo tiempo de escribirlo, entró en tratativas con Seattle Computer Products para renombrar el sistema QDOS a 86-DOS 0.2. Poco después se licenciaría a Micro-soft, quien licenciaría el uso de todo el paquete bajo la marca MS-DOS.
  
 ===Compila FreeDOS Edlin=== ===Compila FreeDOS Edlin===
 +
 Para poder utilizar EdLin deberás por primera vez [[tutorial de compilación|compilarlo]]. Ejecuta este bloque de comandos en la terminal: Para poder utilizar EdLin deberás por primera vez [[tutorial de compilación|compilarlo]]. Ejecuta este bloque de comandos en la terminal:
  
 <code bash> <code bash>
-mkdir ~/prg ;+mkdir ~/amd64_bin ;
 cd /tmp ; cd /tmp ;
-wget https://sourceforge.net/projects/freedos-edlin/files/freedos-edlin/2.22/edlin-2.22.tar.gz ; +wget https://sourceforge.net/projects/freedos-edlin/files/freedos-edlin/2.23/edlin-2.23.tar.gz ; 
-tar xvzf edlin-2.22.tar.gz ; +tar xvzf edlin-2.23.tar.gz ; 
-cd /tmp/edlin-2.22/ ;+cd /tmp/edlin-2.23/ ;
 ./configure ; ./configure ;
 make ; make ;
-cp /tmp/edlin-2.22/edlin ~/prg +cp /tmp/edlin-2.23/edlin ~/amd64_bin 
-rm -r /tmp/edlin-2.22/+rm -r /tmp/edlin-2.23/
 </code> </code>
- 
  
 Podrás ahora invocar EdLin en si mismo: Podrás ahora invocar EdLin en si mismo:
  
-<code bash>./prg/edlin fichero.txt</code>+<code bash>edlin fichero.txt</code>
  
 ====Uso básico==== ====Uso básico====
-EdLin es un editor modal. Su prompt de órdenes es un ''*'', mientras que el prompt de escritura es un '':''. 
  
-Por convención EdLin opera con bloques de sólo 11 líneas.+EdLin es un editor modal. Su prompt de órdenes es un caracter ''*'', mientras que el prompt de escritura es un caracter '':''.
  
-Para comenzar a agregar líneas ingresa la órden ''a'' y al recibir el prompt '':'' comienza a escribir. Podrás borrar y editar la líneas. Para introducir la línea en el búfer de EdLin, presiona la tecla intro.+Por convención EdLin opera con bloques de sólo 11 líneas. Puedes utiliza orden ''?'' para ver la ayuda con comandos
  
->Recuerda que en [[UNIX]] las líneas de texto no necesariamente se limitan una cantidad de caracteres específicopueden equivaler __párrafos completos__Este comportamiento es diferente al clásico EdLin de MS-DOS.+Para comenzar a agregar líneas ingresa la orden ''a'' y al recibir su prompt '':''comienza mecanografiar tu líneaAntes de introducirla, podrás borrar y reescribir caracteres. Para introducir la línea en el búfer de EdLin, presiona la **tecla intro**.
  
-Para cesar el modo de inserción, introduce un ''.'' en una línea aislada y volverás al prompt de comandos ''*''. Podrás guardar el fichero con el comando ''w fichero.txt''. Podrás salir con el comando ''exit''.+Para cesar el modo de inserción, introduce un ''.'' en una línea aislada y volverás al //prompt de comandos// ''*''.
  
-====Comandos de EdLin====+Para listar las últimas 11 líneas ingresa la orden ''l'', y para listar todas las líneas desde la primera, ingresa ''1l''.
  
-Ten en cuenta estas convenciones para operar el //modo de comandos//:+Podrás guardar el fichero con el comando ''w fichero.txt''. Podrás salir con el comando ''e''.
  
-  * Los corchetes ''[]'' son **parámetros opcionales**. +>Recuerda que en [[UNIX]] las líneas de texto no necesariamente se limitan a una cantidad de caracteres específicopueden equivaler a __párrafos completos__. Este comportamiento es diferente al clásico EdLin de MS-DOS. 
-  * El símbolo ''#'' representará un **número de línea**que puede ser uno de varios valores posibles:+==== Comandos de Edlin ====
  
-| Una //cadena de dígitos//, o sea un número de línea literal | Por ejemplo, ''12'' es la decimosegunda línea. | +Para realizar operaciones más complejas debes emplear la sintaxis de comandos de EdLin.
-| ''#'' ("numeral") | representa al número de línea justo antes de la última línea del fichero. | +
-| ''.'' ("punto") | representa **la línea actual** en el fichero. | +
-| ''$'' ("peso") | representa la **línea final** del fichero. | +
-| ''+n'' o ''-n'' | es un **diferencial de suma o resta del número de línea actual**. Es útil para dar posiciones relativas a una línea, tal como ''.+1'' para significar "la línea posterior a la actual"|+
  
-  * El símbolo ''$'' representa una cadena de caracteres. Podrás encerrar la cadena tanto en //apóstrofes// ''<nowiki>''</nowiki>''como //comillas// ''"'', o podrán contener las siguientes secuencias de escape:+En esta, asumiento que los valores entre corchetes ''[]'' son opcionales,
  
-''<nowiki>\a</nowiki>'' | Carácter de campana | +  - ''#'' es un número de línea, aunque también puede indicarse: 
-| ''<nowiki>\b</nowiki>'' | Carácter de Retroceder (borrado) | +    ''.''=para referir la línea actual
-| ''<nowiki>\e</nowiki>'' | Escape | +    ''$''=para referir la última línea del documento, 
-| ''<nowiki>\f</nowiki>'' | Alimenta papel | +    - o ya sea un numeral posicional, de tipo  ''+'' ''-'' otro número. 
-| ''<nowiki>\t</nowiki>'' | Tabulador horizontal | + 
-| ''<nowiki>\v</nowiki>'' | Tabulador vertical | +Luegolos comandos son:
-| ''<nowiki>\"</nowiki>'' | Comillas | +
-| ''<nowiki>\'</nowiki>'' | Apóstrofe | +
-''<nowiki>\.</nowiki>'' | Punto | +
-| ''<nowiki>\\</nowiki>'' | Barra invertida | +
-| ''<nowiki>\xXX</nowiki>'' |  Valor Hexadecimal, donde cada ''X'' es un dígito hexadecimal (de ''0''''F''tanto en mayúsculas como minúsculas) | +
-''<nowiki>\dNNN</nowiki>'' | Valor decimaldonde cada ''N'' es un dígito decimal (de ''0'' a ''9'') | +
-| ''<nowiki>\OOO</nowiki>'' | Valor octaldonde cada ''O'' es un dígito cotal (de ''0'' ''7'') | +
-| ''<nowiki>\^C</nowiki>'' | Caracter de Controltal como ''\^J'' para un caracter "Control+J" literal (linefeed). |+
  
 +^ **Orden** ^ **Resultado** ^
 +| ''#'' | Edita sólo la línea # |
 +| **a** | agrega una línea a continuación |
 +| **[#],[#],#,[#]c** | Copiar línea/rango de líneas |
 +| **[#][,#]d** | borrar linea/rango de líneas |
 +| **e**''fichero.txt'' | Guardar y salir |
 +| **[#]i** | Inserta una línea previamente |
 +| **[#][,#]l** | lista 11 líneas/rango de líneas |
 +| **[#],[#],#m** | mueve el rango de líneas a una posición de línea |
 +| **[#][,#]p** | pagina un rango de líneas |
 +| **q** | Salir de Edlin |
 +| **[#][,#][?]r**''cadena1''**,**''cadena2'' | Reemplazar una [[#cadena de caracteres en edlin|cadena de caracteres]] por otra. |
 +| **[#][,#][?]s**''cadena'' | Buscar una cadena de caracteres |
 +| **[#]t**''fichero.txt'' | Transferir un fichero |
 +| **[#]w**''fichero.txt'' | Guardar un fichero |
  
-===Agregar líneas al fichero=== +Veamos algunos ejemplos de edición avanzada según estos criterios.
-En el //modo de comando// utiliza el comando ''a'' para agregar líneas al fichero. Para cesar el //modo de inserción//, ingresa un ''.'' en una línea aislada y volverás al //modo de comando//.+
  
 ===Editar línea única=== ===Editar línea única===
  
-En el prompt de comandos podrías indicar ''109'' para editar únicamente la línea número ''109''. EdLin te presentará la línea solicitada en la terminal como referencia. Cuando introduzcas una líneaesta reemplazará la misma en el fichero.+Para editar únicamente la décimo novena línea, en el prompt de comandos indica **19**. EdLin te presentará la línea solicitada en la terminal como referencia. Al reescribirlase reemplazará únicamente la línea número 19 del búfer de memoria.
  
 ===Insertar líneas=== ===Insertar líneas===
 +Para pasar al modo de inserción __antes__ de la décimo tercer línea, en el modo de comandos introduce **13i**.  Mientras introduces texto, podrás utilizar las secuencias de escape indicadas anteriormente.
  
-Utiliza ''134i'' para pasar al modo de inserción __antes__ de la línea ''134''. Mientras introduces texto, podrás utilizar las secuencias de escape indicadas anteriormente. +Si deseas abandonar el //modo de inserción//, ingresa ''.'' en una línea aislada (si necesitas una línea que sólo contenga literalmente un punto, deberías indicarlo como ''<nowiki>\.</nowiki>'').
- +
-Si deseas abandonar el //modo de inserción//, ingresa ''.'' en una línea aislada (si necesitas una línea que sólo contenga literalmente un punto, deberías indicarlo como ''<nowiki>\.</nowiki'').+
  
 Luego de abandonar el //modo de inserción//, el puntero pasará a la línea siguiente, a no ser que la inserción se hubiese suspendido al final del búfer, en cuyo caso el puntero pasará a ser la última línea del búfer, naturalmente. Luego de abandonar el //modo de inserción//, el puntero pasará a la línea siguiente, a no ser que la inserción se hubiese suspendido al final del búfer, en cuyo caso el puntero pasará a ser la última línea del búfer, naturalmente.
  
 ===Listar líneas=== ===Listar líneas===
 +
 Use ''[#][,#]l'' para listar líneas de texto en la pantalla. Si se omite el primer parámetro, mostrará el texto que comienza 11 líneas antes de la línea actual. Use ''[#][,#]l'' para listar líneas de texto en la pantalla. Si se omite el primer parámetro, mostrará el texto que comienza 11 líneas antes de la línea actual.
  
Línea 90: Línea 93:
  
 ===Mover líneas=== ===Mover líneas===
-Utilice ''[#],[#],#m'' para mover un bloque de texto a la línea antes que el número especificado en el tercer parámetro. Funciona igual a copiar, sólo que borrará el bloque original+ 
 +Para mover un bloque de texto a la línea anterior a la indicada en el tercer parámetro utiliza ''[#],[#],#m''. Funciona igual a copiar, sólo que borrará el bloque original
  
 ===Presentar líneas=== ===Presentar líneas===
Línea 97: Línea 101:
  
 ===Copiar un rango de líneas=== ===Copiar un rango de líneas===
-Utiliza ''9,12,33,1c'' para copiar un rango de líneas consecutivo a otra localización del búfer. En órden, los parámetros son: 
  
--La primer línea que quiere copiar (en este caso ''9''pero por defecto es la línea actual) +Utiliza ''9,12,33,1c'' para copiar un rango de líneas consecutivo a otra localización del búfer. En ordenlos parámetros son:
--La última línea que quiere copiar (en este caso ''12'', pero por defecto es la línea actual) +
--La línea anterior a la cual desea insertarle el bloque de líneas (en este ejemplo''33''+
--La cantidad de veces que desea copiar el bloque indicado (por defecto es ''1'' sola copia)+
  
-Luego de copiar las líneas, es conveniente usar el comando ''l'' ("listar") para ver los nuevos números de línea.+  -La primer línea a copiar (en este caso ''9'', pero por defecto es la línea actual) 
 +  -La última línea a copiar (en este caso ''12'', pero por defecto es la línea actual) 
 +  -La línea anterior donde deseas insertar el rango de líneas (en este ejemplo, ''33''
 +  -La cantidad de iteraciones que quieres copiar el rango indicado (por defecto es ''1'' sola copia) 
 + 
 +>Una vez que copies las líneas, te conveniente usar el comando **l** ("listar") para ver los nuevos números de línea resultantes.
  
 ===Borrar rango de líneas=== ===Borrar rango de líneas===
  
-Utilice ''d'' para borrar la línea actual. +Utilice **d** para borrar la línea actual.
  
-Pero si utilizas ''[#][,#]d'' podrás borrar un bloque de líneas consecutivas del búfer. Los parámetros  son la primer línea y de la última línea a borrar.+Pero si utilizas ''[#][,#]d'' podrás borrar un rango de líneas consecutivas del búfer. Los parámetros  son la primer línea y de la última línea a borrar.
  
-Si omite el primer parámetro, se borrará el bloque de texto desde la línea actual a la línea especificada como segundo parámetro (asegúrese de incluir la '','').+Si omites el primer parámetro, borrarás el bloque de texto __desde la línea actual__ hasta la línea especificada como segundo parámetro (asegúrese de incluir la '','').
  
-Si omite el segundo parámetro, borrará unicamente la línea especificada en el primer parámetro.+Si omites el segundo parámetro, borrarás __unicamente la línea especificada__ en el primer parámetro.
  
 +===Cadenas de caracteres en EdLin===
  
 +Podrás encerrar las **cadenas de caracteres** tanto en //apóstrofes// ''<nowiki>'...'</nowiki>''como //comillas// ''<nowiki>"..."</nowiki>'', o podrán contener las siguientes //secuencias de escape//:
  
-===Guardar y salir=== +| ''<nowiki>\a</nowiki>'' | Carácter de campana | 
-Utilice el comando ''fichero'' para guardar y salir (es equivalente a ''w fichero'' seguido de ''q'').+''<nowiki>\b</nowiki>'' | Carácter de Retroceder (borrado) | 
 +| ''<nowiki>\e</nowiki>'' | Escape | 
 +| ''<nowiki>\f</nowiki>'' | Alimenta papel | 
 +| ''<nowiki>\t</nowiki>'' | Tabulador horizontal | 
 +| ''<nowiki>\v</nowiki>'' | Tabulador vertical | 
 +| ''<nowiki>\"</nowiki>'' | Comillas | 
 +| ''<nowiki>\'</nowiki>'' | Apóstrofe | 
 +| ''<nowiki>\.</nowiki>'' | Punto | 
 +| ''<nowiki>\\</nowiki>'' | Barra invertida | 
 +| ''<nowiki>\dNNN</nowiki>'' | Valor decimal, donde cada ''N'' es un dígito decimal (de ''0'' a ''9'') | 
 +| ''<nowiki>\xXX</nowiki>'' |  Valor Hexadecimal, donde cada ''X'' es un dígito hexadecimal (de ''0'' a ''F'', tanto en mayúsculas como minúsculas) | 
 +| ''<nowiki>\OOO</nowiki>'' | Valor octal, donde cada ''O'' es un dígito cotal (de ''0'' a ''7'') | 
 +| ''<nowiki>\^C</nowiki>'' | Caracter de Control, tal como ''\^J'' para un caracter **Control+j** literal (linefeed). |
  
-Se le preguntará "Abort edit (Y/N)?" para indicar si desea realmente salir antes de hacerlo. Para salir sin guardar. En tal caso presione la **tecla y**.+==Reemplazar una cadena==
  
 +Utiliza ''[#][,#][?]r$,$'' para reemplazar todas las ocurrencias de la primer cadena con la segunda cadena entre las dos líneas especificadas.
  
- +Si omite el primer parámetro, reemplazará a partir de la línea posterior a la actual.
-==Salir== +
-Utiliza ''q'' para salir de EdLin. +
- +
-Esto se verificará para saber si realmente desea salir. En tal caso, ante la pregunta "Abort edit (Y/N)?" responda ''yes''+
- +
-===Reemplazar una cadena=== +
- +
-Utiliza ''[#][,#][?]r$,$'' para reemplazar todas las ocurrencias de la primer cadena con la sevunda cadena entre las dos líneas especificadas. +
- +
-Si omite el primer parámetro, comenzará reemplazando en la línea posterior a la actual.+
 Si omite el segundo parámetro, dejará de reemplazar texto en la última línea del búfer. Si omite el segundo parámetro, dejará de reemplazar texto en la última línea del búfer.
  
Línea 140: Línea 150:
  
 ==Búsqueda de cadena== ==Búsqueda de cadena==
-Use ''[#][,#][?]s$'' para buscar la primer línea que contenga la subcadena esppecificada.+Use ''[#][,#][?]s$'' para buscar la primer línea que contenga la subcadena especificada.
  
 Si omite el primer parámetro, comenzará a buscar desde la línea actual. Si omite el segundo parámetro, dejará de buscar al llegar al final del búfer. Si incluye el ''?'', edlin solicitará confirmación ante cada encuentro. Si responde "no", continuará la búsqueda. Si responde "yes" finalizará la búsqueda. Si omite el primer parámetro, comenzará a buscar desde la línea actual. Si omite el segundo parámetro, dejará de buscar al llegar al final del búfer. Si incluye el ''?'', edlin solicitará confirmación ante cada encuentro. Si responde "no", continuará la búsqueda. Si responde "yes" finalizará la búsqueda.
  
 Si la búsqueda localiza la subcadena, la línea actual será la línea donde finalizó la búsqueda. Si la búsqueda localiza la subcadena, la línea actual será la línea donde finalizó la búsqueda.
 +===Trabajo de Ficheros en EdLin===
 +==Transferir un fichero==
  
-===Transferir un fichero=== +Utilice **[#]t** ''fichero.txt'' para insertar el contenido de ''fichero.txt''. Lo hará incorporándolo antes del número de línea especificado. Si omites especificar un número de línea, se insertará antes de la línea actual.
- +
-Utilice ''[#]t fichero'' para transferir un archivo. +
- +
-Inserte el contenido de un fichero antes del número de línea especificado. Si omite el primer número de línea, se insertará antes de la línea actual.+
  
 ==Grabar un fichero== ==Grabar un fichero==
-''[#]w fichero'' Graba las primeras líneas ''#'' en el fichero especificado en el disco. +**[#]w** ''fichero.txt'' graba las primeras líneas ''#'' en del fichero especificado en el disco. 
-Si se omiten los parámetros de números, se escribirán todas las líneas en el búfer.+Si omites el número de línea, se grabarán __todas las líneas__ del búfer en disco.
  • edlin.1690565770.txt.gz
  • Última modificación: 2023/07/28 17:36
  • por peron