Edite un archivo de texto en la consola usando Powershell

82

Estoy tratando de encontrar la forma más fácil de editar archivos de texto en la consola (PowerShell en mi caso). Estoy usando Windows 7 de 64 bits. Me irrita que no pueda simplemente escribir edit filename.txtpara editar un archivo. Eso solía funcionar, pero todo ha cambiado. ¿Cuáles son mis opciones para ver y editar archivos de texto dentro de la consola de Windows? Si me dices que instale y aprenda VIM, te golpearé en la cara. :-)

Vínculos comerciales
fuente
1
Me tomé la libertad de editar su pregunta porque no tiene nada que ver con PowerShell.
Joey
2
use nano ......
scape

Respuestas:

28

Editor de texto de Kinesics .

Es súper rápido y maneja archivos de texto grandes, aunque tiene características mínimas. Se incluye una versión de GUI y una versión de consola (k.exe). Debería funcionar igual en Linux.

Ejemplo: En mi prueba, tomó 7 segundos abrir una imagen de disco de 500 MB.

captura de pantalla

usuario2164194
fuente
2
+1 ¡Muy buen editor! ¡Abrió un archivo de nube de puntos de 20 millones de puntos sin problemas!
Adri CS
3
No tienes que instalar. Simplemente ejecute el paquete .exe y se detendrá con el error 740 (requiere elevación). Tome nota del directorio donde extrajo los archivos y cópielos en algún lugar.
Bill_Stewart
23

¿Por qué no usar el bloc de notas?

notepad.exe filename.txt

El antiguo edit.comfunciona en PowerShell (al menos en mi caja: Windows 7 Pro x86) pero en x64 no funciona debido a su arquitectura de 16 bits.

Puedes echar un vistazo a este sencillo editor.

CB.
fuente
Si está tratando de editar un archivo localmente, simplemente puede escribir notepad en lugar de notepad.exe y funcionará bien. Acabas de ahorrar unos segundos cada día :)
Vlad Schnakovszki
el bloc de notas falla silenciosamente para mí (Windows2019). ¿Realmente tiene un editor de consola integrado o está intentando abrir una ventana en una sesión sin ventanas?
andrew lorien
21

Aunque te arriesgas a golpearme, supongo que estás atascado con la solución que mencionaste. Eche un vistazo a esta publicación en SuperUser:

¿Cuáles son los editores de texto que no son x en Powershell?

Además, hay una versión nano para Windows:

Nano Editor

Me agacharé y me cubriré ahora, con suerte alguien tendrá una respuesta más suficiente.

Sven Plath
fuente
Para los usuarios que necesitan saber cómo hacer que nano funcione desde todos los directorios, la búsqueda de Google relevante es: google.co.uk/ ... Yo personalmente prefiero nano a kinésica, pero las preferencias individuales pueden variar
¿Qué hay en una búsqueda de Google?
Salvaste mi día. Hay una versión de Windows compatible con win32 .
Peter L
16

Un poco resucitado, pero para cualquier otra persona que se acerque a esta pregunta, eche un vistazo al editor Micro . Es un pequeño EXE independiente sin dependencias y con versiones nativas de Windows 32 \ 64. Funciona bien tanto en PowerShell como en CMD.EXE.

ingrese la descripción de la imagen aquí

Alan B
fuente
micro.exe procesa los caracteres chinos mejor que k.exe / kit.exe.
pimgeek
pero lamentablemente, micro.exe no es bueno para procesar la ruta del archivo de Windows, el comando "abrir archivo" no proporciona una ventana del explorador de archivos.
pimgeek
10

Estoy de acuerdo con Sven Plath . Nano es una gran alternativa. Si tiene la configuración Chocolatey . Instale nano escribiendo lo siguiente en Powershell:

PS C:\dev\> choco install nano

Luego, para editar algún archivo.txt ingrese:

PS C:\dev\> nano somefile.txt

¡Es bastante bonito!

Editar: Nano funciona bien en mi caja de Windows 10, pero tarda muchísimo en cargarse la primera vez en mi máquina con Windows 7. Eso me hizo cambiar a vim (vi) en mi computadora portátil Win 7

PS C:\dev\> choco install vim
PS C:\dev\> vim $profile

Agregue una línea en el perfil de powershell a Set-Alias ​​(sal)

sal vi vim

Esc -: - x - Ingrese :-)

Albino Cordeiro
fuente
7

Puede instalar Far Manager (un gran OFM , por cierto) y llamar a su editor así:

Far /e filename.txt
Joey
fuente
gracias por el administrador de archivos, ha pasado mucho tiempo desde la última vez que usé este tipo de administrador de archivos, Ohh, recuerdo las veces que jugaba en la PC de la escuela :)
Luke
6

Si usa el contenedor de Windows y desea cambiar cualquier archivo, puede obtener y usar Vim en la consola Powershell fácilmente.

Para utilizar el contenedor de Windows Docker con PowerShell:

docker exec -it <name> powershell

  • Primero obtenga el administrador de paquetes de Chocolatey

    Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression;

  • Instalar Vim

    choco install vim

  • Refrescar VARIABLE AMBIENTAL Puede simplemente exity volver al contenedor

  • Vaya a la ubicación del archivo y Vim it vim file.txt

Aidar Gatin
fuente
5

instale vim desde en línea, y luego puede hacer: vim "nombre de archivo" para editar ese archivo

Edwardtyl
fuente
2
Respuesta de mierda, después de que el OP declaró específicamente que no querían usar Vim. -1.
MD XF
11
No es una respuesta mala porque Google llevará a otras personas además de OP aquí.
Bruno Bronosky
2

Soy un ingeniero jubilado que creció con DOS, Fortran, IBM360, etc. en los años 60 y, como otros en este blog, extraño mucho la pérdida de un editor de línea de comandos en Windows de 64 bits. Después de pasar una semana navegando por Internet y probando editores, quería compartir mi mejor solución: Notepad ++. Está muy lejos de DOS EDIT, pero hay algunos beneficios secundarios. Desafortunadamente, es un editor de pantalla, requiere un mouse y, por lo tanto, es lento. Por otro lado, es un editor de fuentes de Fortran decente y muestra números de fila y columna. Puede mantener varias pestañas para los archivos que se están editando e incluso recuerda dónde estuvo el cursor por última vez. Por supuesto, sigo escribiendo códigos de teclado (50 años de costumbre), pero sorprendentemente al menos algunos de ellos funcionan. Quizás no sea una característica documentada. Cambié el nombre del editor a EDIT.EXE, configuré una ruta hacia él y lo invoqué desde la línea de comando. No es tan malo. Estoy viviendo con eso. Por cierto, tenga cuidado de no usar la tecla de tabulación en la fuente de Fortran. Pone un ASCII 6 en el texto. Es invisible y gFortran, al menos, no puede lidiar con eso. Notepad ++ probablemente tiene muchas características con las que no tengo tiempo para jugar.

Doug Millar
fuente
2

Puede instalar nano en powershell a través de choco: es una forma de baja fricción de obtener capacidades de edición de texto en powershell:

  1. Instalar Choco
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  1. Instalar Nano
choco install nano
  1. Lucro
nano myfile.txt

La mejor parte es que se convierte en parte de la ruta y sigue funcionando durante los reinicios, etc. :)

user230910
fuente
Nano en Windows en PowerShell remoto no parece reconocer las teclas arriba / abajo / izquierda / derecha.
not2qubit
Probablemente debería utilizar una versión más reciente de nano. El proporcionado por choco es muy antiguo. Luego, para usarlo con SSH, debe ejecutar con -cgbanderas, pero de todos modos perderá la actualización del cursor. Para actualizar la posición visual de la ubicación del cursor, presione CTRL-L.
not2qubit
Si tiene algún problema con nano, use vim en su lugar
Stas BZ
1

Estoy pensando que podrías usar el bloc de notas, así:

notepad myfile.extension

Debería abrirse en el bloc de notas.

Xelxa
fuente
¿Cuál es la diferencia con la respuesta ya existente stackoverflow.com/a/11045112/2442804 ?
luk2302
1

Tuve que depurar un poco una imagen de la ventana acoplable de Windows Nano y necesitaba editar el contenido de un archivo, quién hubiera adivinado que era tan difícil.

He utilizado una combinación de Get-Contenty Set-Contenty la base 64 de codificación / decodificación de archivos de actualización. Por ejemplo

Editando foo.txt

PS C:\app> Set-Content foo.txt "Hello World"                                                                                                                                                                                        
PS C:\app> Get-Content foo.txt                                                                                                                                                                                                      
Hello World                                                                                                                                                                                                                         
PS C:\app> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("TXkgbmV3IG11bHRpDQpsaW5lIGRvY3VtZW50DQp3aXRoIGFsbCBraW5kcyBvZiBmdW4gc3R1ZmYNCiFAIyVeJSQmXiYoJiopIUAjIw0KLi4ud29ybGQ=")) | Set-Content foo.txt 
PS C:\app> Get-Content foo.txt                                                                                                                                                                                                      
My new multi                                                                                                                                                                                                                        
line document                                                                                                                                                                                                                       
with all kinds of fun stuff                                                                                                                                                                                                         
!@#%^%$&^&(&*)!@##                                                                                                                                                                                                                  
...world                                                                                                                                                                                                                            
PS C:\app>       

El truco es conectar la cadena decodificada base 64 a Set-Content

[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("...")) | Set-Content foo.txt 

No es vim, pero puedo actualizar archivos, por lo que vale.

ug_
fuente
0

Bueno, hay mil formas de editar un archivo de texto en Windows 7. Por lo general, la gente instala Sublime, Atom y Notepad ++ como editor. Para la línea de comando, creo que el comando Edición básica (por cierto, que no funciona en computadoras de 64 bits) es bueno; Alternativamente, encuentro el tipo con> nombre de archivo como un método muy Aplaudible.Si Windows está recién instalado y Uno quiere evitar el Bloc de notas . ¡¡Podría ser esto !! El uso perfecto de Type como editor :)

referencia de la imagen: - https://www.codeproject.com/Articles/34280/How-to-Write-Applet-Code

Reitsu Y
fuente
0

En linux soy un divertido de Nano o vim, solía usar nano y ahora vim, y son muy buenas opciones. Existe una versión para Windows. Aquí está el enlace https://nano-editor.org/dist/win32-support/

Sin embargo, más a menudo necesitamos abrir el archivo en cuestión, desde la línea de comandos lo más rápido posible, para no perder tiempo. Podemos usar notepad.exe, podemos usar notepad ++, y sí, podemos usar texto sublim . Creo que no hay nada mejor que un editor ligero y demasiado potente. Texto sublime aquí. para el caso, simplemente no queremos salir de la línea de comando, o queremos usar la línea de comando para ser rápido. y sí. Podemos usar texto sublime para eso. contiene una línea de comando que le permite abrir rápidamente un archivo en texto sublime. También hay diferentes argumentos de opciones que puede utilizar. Aquí cómo lo haces.

Primero necesitas saber que existe subl.exe . una interfaz de línea de comandos para sublim.

ingrese la descripción de la imagen aquí

1-> primero creamos un archivo por lotes. el contenido es

ingrese la descripción de la imagen aquí

@ECHO OFF

"C:\Program Files\Sublime Text 3\subl.exe" %*

Podemos guardar eso donde queramos. Preferí crear un directorio en el directorio de instalación de texto sublime. Y guardado allí el archivo por lotes que venimos a escribir y crear.

(Observación: cambie la ruta anterior después de su instalación).

2-> agregamos esa carpeta a la variable de entorno del sistema de ruta. y eso es.

ingrese la descripción de la imagen aquí

o desde la configuración del sistema (Windows 7/8/10)

ingrese la descripción de la imagen aquí

entonces:

ingrese la descripción de la imagen aquí

entonces:

ingrese la descripción de la imagen aquí

luego copiamos la ruta:

ingrese la descripción de la imagen aquí

luego agregamos eso a la variable de ruta:

ingrese la descripción de la imagen aquí

¡muy rápido!

¡Lanza un nuevo cmd y ahora tienes el comando subl funcionando bien!

ingrese la descripción de la imagen aquí

para abrir un archivo solo necesita usar subl comando como compañero:

subl myfileToOpen.txt

también puede usar uno de los argumentos de las opciones (escriba --help para verlos como en la imagen de arriba).

También tenga en cuenta que puede aplicar el mismo método con casi cualquier editor de su elección.

Mohamed Allal
fuente
4
Si está utilizando PowerShell como shell cmd en lugar de, simplemente puede añadir Set-Alias subl 'C:\Program Files\Sublime Text 3\sublime_text.exe'a su $PROFILE, más información sobre el perfil aquí technet.microsoft.com/en-us/library/bb613488(v=vs.85).aspx
Kevin Secrist
0

Puede hacer lo siguiente:

bash -c "nano index.html"

El comando anterior abre el archivo index.html con el editor nano dentro de Powershell.

Alternativamente, puede usar el editor vim con el siguiente comando

bash -c "vi index.html"
Mwiza
fuente
0

No estoy seguro de si esto beneficiará a alguien, pero si está utilizando Azure CloudShell PowerShell, simplemente puede escribir:

code file.txt

Y el código de Visual Studio aparecerá con el archivo que se va a editar, bastante bien.

Ng Sek Long
fuente