Si alguien tiene la edad suficiente para recordar el editor ISPF en los mainframes de IBM, entonces sabe a lo que me refiero. Para el resto de ustedes...
Estoy buscando un editor gratuito que me permita editar solo columnas particulares de un archivo de texto (preferiblemente solo en una serie de líneas contiguas).
NotpePad ++, Crimson Editor (que parece tener un desarrollo más largo, por desgracia) y UltraEdit (que no es gratuito, por desgracia), todos reclaman un modo de columna, pero eso es solo la capacidad de copiar/pegar áreas rectangulares de un archivo de texto.
Si bien eso es ciertamente bueno, quiero poder buscar/reemplazar texto y poder restringirlo a un rango o de columnas contiguas, preferiblemente también en un rango de líneas contiguas.
Un mal ejemplo:
Tim likes beer
Toms likes beer very much
Bob does not like either beer or wine
Ann likes beer, and also wine (and the Oxford comma ;-)
y aquí está de nuevo, con algunos números de línea y columna:
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes beer
2 Toms likes beer very much
3 Bob does not like either beer or wine
4 Ann likes beer, and also wine
Si quiero cambiar todo "cerveza" a "pescado" entre las columnas 10 y 20, el resultado sería (cambios en mayúscula).
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes FISH
2 Toms likes FISH very much
3 Bob does not like either beer or wine<=== not changed, not between cols 10 & 20
4 Ann likes FISH, and also wine
Como beneficio adicional, también me gustaría restringirlo a ciertas filas, digamos filas 2 a 4, en cuyo caso, el resultado sería:
1 2 3 4
1234567890123456789012345678901234567890
1 Tim likes beer <== not changed, not between lines 2 and 4
2 Toms likes FISH very much
3 Bob does not like either beer or wine <== not changed, not between cols 10 & 20
4 Ann likes FISH, and also wine
Pregunta: ¿alguien sabe de un editor de texto (preferiblemente) gratuito de Widows que pueda hacer eso?
Aunque todavía no estoy jubilado, tengo " la edad suficiente para recordar el editor ISPF en los mainframes de IBM ": todavía lo uso (y me encanta) más o menos todos los días...
Para responder realmente a su pregunta, le sugiero que eche un vistazo a SPFLite . Aquí hay una cita al respecto, de Wikipedia :
Los editores que se utilizan en el entorno de PC normalmente funcionan de una manera significativamente diferente a los que funcionan en grandes sistemas Mainframe. Los editores de PC están casi universalmente orientados al flujo de caracteres, mientras que los editores de mainframe suelen estar orientados a líneas de texto. Por lo tanto, los usuarios que necesitan trabajar tanto en PC como en mainframe necesitan volverse productivos en dos estilos de trabajo diferentes.
SPFlite es un administrador de archivos y editor de texto gratuito que proporciona, en PC con Windows, un entorno de trabajo familiar para aquellos que están acostumbrados al ISPF basado en mainframe de IBM. Además de proporcionar la compatibilidad funcional básica de ISPF, SPFLite ha agregado funciones ampliadas para mejorar las capacidades de edición.
Una vez que abra un archivo en modo de edición, debería poder resolver su pregunta (de muestra) solo con este comando de edición (primario):
c beer fish 10 20 all
Pero espera, hay más... Si también etiquetarías tu línea 2 con (digamos) .f
y tu línea 4 con .l
, tu pregunta adicional puede responderse con este comando:
c beer fish 10 20 all .f .l
Fácil, ¿no?
Escribí un plugin personalizado para ti.
Necesitas:
Complemento para Notepad ++ que proporciona una función de búsqueda / reemplazo restringida por filas y columnas.
Nunca antes he codificado en Python, por lo que es posible que el código no sea muy pitónico. ¡Cualquier sugerencia o mejora es bienvenida!
Plugins --> Python Script --> New Script
ColReplace.py
como nombre de archivo y haga clic en Guardar .ColReplace.py
en el archivo que acaba de crear en el paso 5.Plugins --> Scripts --> ColReplace
.Es cierto que la experiencia del usuario podría mejorarse :)
El vim
editor puede hacer esto de forma inmediata¹. Hay un instalador de Windows simple para gvim o varias compilaciones están disponibles para su instalación a través de Chocolaty , cygwin, etc.
Vim es un editor de modo, lo que significa que hay varios estados en los que puede estar la ventana del editor, incluido insertar (donde ingresa texto), normal (donde las pulsaciones de teclas activan comandos que manipulan el texto) y visual (donde puede seleccionar bloques de texto) .
El modo Visual puede seleccionar texto en una de tres formas:
En cuanto a los caracteres, selecciona rangos de caracteres en una o más líneas.
Line-wise selecciona líneas enteras.
Por columnas, selecciona un bloque rectangular de caracteres delimitado por posiciones de fila/columna.
Este último se activa moviendo el cursor sobre una esquina de su rectángulo en modo normal y presionando Ctrlv, luego moviendo el cursor a la otra esquina. En este punto, verá la columna resaltada.
A continuación, debe ejecutar un comando de búsqueda y reemplazo que encuentre coincidencias dentro de la selección visual actual (o última):
:%s/\%Vbeer/fish/g
Tenga en cuenta que esto coincidirá con cualquier instancia de "cerveza" que comience dentro de su selección, incluso si terminan fuera de ella. Anclaría ambos lados de la búsqueda dentro de la selección si no quisiera este comportamiento:
:%s/\%Vbeer\%V/fish/g
También tenga en cuenta que el principio %
de este comando le dice a vim que opere en todo el archivo. Si va directamente al modo de comando (pulsando :) desde el modo visual, el indicador se completará previamente con el prefijo :'<,'>
que opera solo en el rango seleccionado. Está bien usar esto, pero como la función de búsqueda y reemplazo opera en línea, aún necesita usar \%V
para hacer coincidir solo dentro de la selección.
:'<,'>s/\%Vbeer/fish/g
Para un repaso rápido de otras cosas que puede hacer con el modo de columna, vea este video de VimCast .
¹ Eso no significa que solo podrá usar el editor listo para usar. Hay un viejo chiste que dice que si quieres una buena cadena de texto aleatorio, siéntate con VIM y pídeles que salgan del editor. Si no está familiarizado con el uso de vim, puede valer la pena dedicar unos minutos a un tutorial introductorio para que al menos conozca los conceptos básicos sobre cómo abrir, editar, guardar y salir del editor. El paradigma de uso es un poco diferente al de la mayoría de las aplicaciones que puede usar regularmente en Windows. Puede ser muy poderoso, pero tómese el tiempo para comprender los conceptos básicos antes de intentar el uso más avanzado que se detalla en esta respuesta.
Editor SynWrite : si selecciona el bloque de columnas, de la línea 2 a la línea 4, y de la columna 10 a la columna 20, puede hacer Reemplazar todo en esta selección. (Esta es una opción en el cuadro de diálogo Reemplazar).
pierre.vriens
Mawg dice que reincorpore a Monica
pierre.vriens
pierre.vriens
Mawg dice que reincorpore a Monica
pierre.vriens
Mawg dice que reincorpore a Monica