Edit a text file on the console in 64-bit Windows

2019-01-21 15:45发布

I'm trying to figure out the easiest way to edit text files in the console (PowerShell in my case). I'm using Windows 7 64 bit. It galls me that I can't just type edit filename.txt to edit a file. That used to work, but that's all changed. What are my options to view and edit text files within the windows console, and if you tell me to install and learn VIM I'm going to punch you in the face. :-)

12条回答
We Are One
2楼-- · 2019-01-21 16:24

You could install Far Manager (a great OFM, by the way) and call its editor like that:

Far /e filename.txt
查看更多
仙女界的扛把子
3楼-- · 2019-01-21 16:27

I had to do some debugging on a Windows Nano docker image and needed to edit the content of a file, who would have guessed it was so difficult.

I used a combination of Get-Content and Set-Content and base 64 encoding/decoding to update files. For instance

Editing 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>       

The trick is piping the base 64 decoded string to Set-Content

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

Its no vim but I can update files, for what its worth.

查看更多
Luminary・发光体
4楼-- · 2019-01-21 16:27

In linux i'm a fun of Nano, i'm always using nano, and is really a great choice. There is a version for windows. Here is the link https://nano-editor.org/dist/win32-support/

However more often we need to open the file in question, from the command line as quick as possible, to not loose time. We can use notepad.exe, we can use notepad++, and yea, we can use sublim text. I think there is no greater then a lightweight, Too powerful editor. Sublime text here. for the thing, we just don't want to get out of the command line, or we want to use the command line to be fast. and yea. We can use sublime text for that. it contain a command line that let you quickly open a file in sublime text. Also there is different options arguments you can make use of. Here how you do it.

First you need to know that there is subl.exe. a command line interface for sublim.

enter image description here

1-> first we create a batch file. the content is

enter image description here

@ECHO OFF

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

We can save that wherever we want. I preferred to create a directory on sublime text installation directory. And saved there the batch file we come to write and create.

(Remark: change the path above fallowing your installation).

2-> we add that folder to the path system environment variable. and that's it.

enter image description here

or from system config (windows 7/8/10)

enter image description here

then:

enter image description here

then:

enter image description here

then we copy the path:

enter image description here

then we add that to the path variable:

enter image description here

too quick!

launch a new cmd and now you've got subl command working well!

enter image description here

to open a file you need just to use subl command as fellow:

subl myfileToOpen.txt

you can also use one of the options arguments (type --help to see them as in the image above).

Also note that you can apply the same method with mostly any editor of your choice.

查看更多
我只想做你的唯一
5楼-- · 2019-01-21 16:30

install vim from online, and then you can just do: vim "filename" to edit that file

查看更多
小情绪 Triste *
6楼-- · 2019-01-21 16:30

I agree with Sven Plath. Nano is a great alternative. If you have Chocolatey setup. Install nano by typing the following in Powershell:

PS C:\dev\> choco install nano

Then, to edit somefile.txt enter:

PS C:\dev\> nano somefile.txt

It's pretty neat!

Edit: Nano works well on my Windows 10 box but takes incredibly long to load the first time on my Windows 7 machine. That made me switch to vim (vi) on my Win 7 laptop

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

Add a line in the powershell profile to Set-Alias (sal)

sal vi vim

Esc - : - x - Enter :-)

查看更多
beautiful°
7楼-- · 2019-01-21 16:31

While risking you punching me, I guess you are stuck with the solution you mentioned. Have a look at this posting on SuperUser:

Which are the non-x text editors in Powershell?

Also, there is a nano version for windows:

Nano Editor

I'll duck and cover now, hopefully someone will have a more sufficient answer.

查看更多
登录 后发表回答