如何使用真正的 PowerShell 文本编辑器编辑文件

你是否運行了一個讀取文本文件的腳本,發現該文件中有幾個錯誤的項目?在這種情況下,PowerShell文本編輯器可能很有用。您無需啟動外部編輯器,而是可以在不離開PowerShell的情況下編輯文件。這很酷,對吧?

繼續閱讀,您將學習如何安裝和使用三個文本編輯器(NanoVimEmacs)來在PowerShell中編輯文本文件。本教程還將介紹每個編輯器的優點,以幫助您選擇最適合您的編輯器。

讓我們開始吧!

前提條件

本教程將進行實際演示。如果您想跟著做,請確保您擁有以下內容:

  • A computer running on Windows 7 or higher. The examples in this tutorial will use Windows 10 version 21H1.
  • Windows PowerShell v3+或PowerShell Core v6+。本教程將使用Windows PowerShell版本5.1。
  • 最新版本的Chocolatey(本教程撰寫時的版本為v0.11.2)。

使用Nano作為PowerShell文本編輯器

如果您是第一次使用基於終端的文本編輯器,或者只需要對文件進行快速編輯,Nano非常適合您。Nano是一個輕巧、直觀的編輯器,相比於本教程中的其他高級編輯器,更適合進行輕量級的文本編輯任務。

安裝Nano

請按照以下步驟安裝Nano。

1.以系統管理員身份打開PowerShell

2. 在PowerShell中執行以下choco install命令來安裝Nano文本編輯器。(-y)開關將跳過確認提示並繼續安裝軟件包。

choco install nano -y

安裝過程如下圖所示。正如您所看到的,在本示例中,Nano安裝成功。

Installing Nano

3. 安裝完Nano後,運行以下命令來驗證安裝是否成功並顯示當前版本。

nano --version

如下圖所示,命令執行成功並顯示了您計算機上的Nano版本。

Verifying the Nano version

編輯和保存文件

現在您已經安裝了Nano,是時候開始使用它了!

1. 要創建新檔案或打開現有檔案,請執行nano命令,然後跟隨要創建或打開的檔案名稱。在本教程的示例中,您將創建並編輯一個Windows PowerShell腳本,該腳本使用.ps1檔案擴展名。下面的命令將在當前目錄中創建一個名為myPowerShellScript.ps1的新檔案。

nano myPowerShellScript.ps1

Nano文本編輯器將在PowerShell內部打開。如下圖所示,在底部附近顯示[New File],表示Nano已打開一個新的空檔案。

The Nano editor screen

要查看所有可用的快捷命令,請在鍵盤上按CTRL+G以顯示幫助文檔。以^開頭的命令表示您需要按CTRL鍵。另一方面,如果命令以M開頭,則需要按ALT鍵。

2. 接下來,使用鍵盤上的箭頭鍵開始編寫您的腳本。例如,輸入Windows PowerShell命令Write-Host "Hello World!",如下圖所示。當執行時,此命令將在控制台上打印出文字“Hello World!”

請注意,一旦修改檔案內容,編輯器的右上角將顯示Modified一詞。編輯後,按CTRL+O告訴Nano您要保存檔案。

Using the Write-Out shortcut

3. Nano提示您輸入要寫入更改的檔案名稱。按Enter確認。

Saving the file

4. 最後,要退出Nano,請按CTRL+X

如果您試圖在有未保存更改的情況下退出編輯器,Nano 將詢問您是否要保存或忽略更改。如果選擇保存,請按Y,然後像在第3步中那樣指定要寫入的文件名。否則,按N以放棄更改。

Exiting Nano

5. 現在執行您的腳本,執行以下命令。以下命令假設您的文件位於 C:\ 文件夾中。

& C:\myPowerShellScript.ps1

該腳本將在終端中打印消息‘Hello World!’,如下圖所示。

Output of the script

搜索和替換文本

現在您知道如何編輯和保存文件,是時候學習做一些稍微高級的事情了:搜索和替換字符串!

要搜索字符串,請按照以下步驟操作。

1. 首先,如果尚未打開,請在Nano編輯器中打開文本文件。

2. 一旦打開文本文件,請在鍵盤上按CTRL+W調用Where Is命令。

3. 接下來,在搜索提示旁輸入要搜索的字符串並按Enter。下面的示例將搜索單詞Hello

Searching for a string

如果文件中存在該字符串,光標將移動到其旁邊,如下所示。

Finding the string

要搜索並替換字符串,請按照以下步驟操作。

1. 在鍵盤上按CTRL+\打開搜索和替換菜單。在Search(要替換的內容)提示旁邊,輸入要替換的字符串,然後按Enter。

Searching for the word ‘Hello’

2. 接下來,在取代為提示符號中,輸入新詞並按下 Enter 鍵。在下面的示例中,取代詞將為再見。

Replacing the word

3. 最後,選擇是只替換目前的單一個體還是所有符合的單一個體。選擇如下:

  • 要替換單一個體,按Y鍵。
  • 要替換所有個體,按A鍵。
  • 要跳過此個體,按N鍵。
  • 要取消取代操作,按CTRL+C鍵。

在此示例中,按Y鍵以替換目前的個體。

Confirming the search and replace operation

Nano將在取代操作成功時顯示替換的次數,如下圖所示。

Replace occurrence count

4. 在您的鍵盤上按CTRL+X鍵退出Nano,並按Y鍵保存緩衝區。重新執行您的腳本。新消息‘再見,世界!將會在您的終端中列印。

The script output

使用Vim作為PowerShell文本編輯器

Vim提供比Nano更多功能,如會話恢復、語法著色、窗口分割和自動完成。Nano適用於快速文件編輯,而Vim也是一個輕量級的替代IDE。

但是,Vim提供的額外功能需要付出更 ste 峻的學習曲線。不過,請不要氣餒。Vim是學習的優秀編輯器。

安裝Vim

現在是時候開始安裝Vim了。

1. 以系統管理員身分開啟PowerShell

2. 在 PowerShell 终端中,执行以下命令安装 Vim 编辑器。

choco install vim -y

3,要验证 Vim 版本,请运行以下命令。 vim --v

vim --version
Verifying the Vim version

编辑和保存文件

现在您已经安装了 Vim,是时候动手学习如何编辑文件了。在继续之前,您应该知道 Vim 中有不同的模式。每种模式的行为不同,并影响您可以在编辑器中执行的操作。

三种常用的模式是:

  • 普通模式 – 打开 Vim 时的默认模式。此模式允许您导航文本文件,但不能添加新文本。
  • 插入模式 – 这是 Vim 允许您编辑文件的模式。要进入此模式,请在键盘上按 i(不区分大小写)。要退出并返回普通模式,请按 ESC
  • 命令模式 – 在此模式中,Vim 允许您调用命令,例如保存文件、退出 Vim 或查看 帮助文档 等。

接下来是在 Vim 中编辑文件,按照以下步骤操作。

1. 要在 Vim 中打开文件,请运行 vim 命令,后跟要打开的文件名。下面的命令打开了 myPowerShellScript.ps1 文件。

vim myPowerShellScript.ps1

vim 文本编辑器将打开,如下图所示。请注意,PowerShell 命令 ‘Write-Host’ 和消息 ‘Hello World!’ 显示为不同的颜色,因为 Vim 支持语法着色。

The Vim opening view in normal mode

如果您需要查看 Vim 帮助文档,请键入 :h 然后按 Enter 键。在正常模式下按下 : 字符会切换 Vim 到命令模式,而 h 意味着打开帮助文件。要退出帮助文档,请键入 :q 然后按 Enter 键返回正常模式。

接下来,通过按下 i 进入 插入 模式。当您进入 插入 模式时,编辑器底部将显示文本 -- INSERT --,如下图所示。

Vim in insert mode

3. 现在您处于插入模式,可以随意编辑文件。箭头键将允许您在编辑器内移动光标。

4. 编辑完成后,按下 Esc 返回正常模式。

5. 输入命令 :wq 并按 Enter 键保存并关闭文件。命令 w 保存文件,而 q 退出 Vim。

Saving the file and existing Vim

搜索和替换文本

按照以下步骤在 Vim 中搜索字符串。

1. 在 Vim 中打开要编辑的文件。

2. 在 Vim 编辑器中,要搜索字符串,请运行下面的命令,其中 <string> 是您要搜索的字符串。

:/<string>

例如,要搜索单词 Hello,请键入:

:/Hello

Vim 将突出显示匹配的单词,如下图所示。

要迭代多个匹配文本的实例,请按 n 移至下一个出现位置,或按 N 键移至上一个出现位置。

Vim highlighting the matching words

3. 最後,執行以下命令以替換整個文件中的字符串,其中<old>是要替換的文本,<new>是替換的文本。

:%s/<old>/<new>/g

例如,下面的命令將用單詞Goodbye替換單詞Hello

:%s/Hello/Goodbye/g
Performing a search and replace in Vim

結果,Vim會根據下面所示替換文本。

Vim showing the search and replace results

4. 輸入命令:wq並按Enter保存並關閉文件。重新運行腳本,輸出將顯示您的新消息。

The script output

使用Emacs作為PowerShell文本編輯器

與Vim一樣,Emacs提供的功能比Nano更多。此外,Emacs還是一個集成開發環境(IDE)。Emacs的一些功能包括語法著色,同時編輯多個文件和自動縮進。

Emacs相對於本教程中的其他編輯器的另一個好處是Emacs是無模式的。Emacs還是完全可定製的。如果Emacs沒有提供某些功能,您可以使用Emacs Lisp自己添加對其的支持。

安裝Emacs

按照以下步驟安裝Emacs。

1. 以管理員身份打開PowerShell,如果尚未打開。

2. 在 PowerShell 终端中,运行以下命令使用 Chocolatey 安装 Emacs。 choco install emacs -y

choco install emacs -y

3. 运行以下命令验证已安装的 Emacs 版本。 emacs --version

choco install emacs -y

您应该看到类似下面图片的输出,显示计算机上的 Emacs 版本。

Displaying Emacs version

编辑和保存文件

那么,您已经安装了 Emacs。接下来做什么呢?立即开始编辑一个文本文件,看看 Emacs 的实际操作。按照以下步骤编辑和保存文本文件。

1. 要在 Emacs 中打开文件,请在 PowerShell 中运行以下命令:emacs,后面跟上文件名。下面的命令打开 myPowerShellScript.ps1 文件进行编辑。 -nw 开关告诉 emacs 在当前终端窗口(PowerShell)中打开编辑器,而不是在单独的 GUI 中。 emacs -nw myPowerShellScript.ps1

emacs -nw myPowerShellScript.ps1

编辑器顶部将显示多个下拉菜单。要查看 Emacs 帮助文档,请单击“帮助”下拉菜单。

Opening a file in Emacs

2. 根据需要编辑文件,完成编辑后,通过连续按下 CTRL+XCTRL+S 保存更改。您将在编辑器底部看到文件保存确认,如下图所示。

Saving the file

3. 要退出编辑器,请按键盘上的 CTRL+X,然后按 CTRL+C

搜索和替换文本

现在您已经了解了 Emacs 的基础知识,如何进行搜索和替换操作呢?按照以下步骤操作。

1. 按下CTRL+S,在I-search提示旁輸入文字以搜尋下一個文字。下面的示例將搜尋單字Hello

Searching for text

2. 要啟動搜尋並替換選項,請在鍵盤上按ALT+%(與ALT+SHIFT+5相同)。

3. 接著,在Query replace:提示旁輸入要搜尋的文字,然後按Enter鍵。

Searching for the text to replace

4. 接著,在提示旁輸入替換文字,然後按Enter鍵。

Entering the replacement text

5. 最後,在Query replacing <old text> with <new text>:提示處,按下!確認並替換所有文字的出現。

Replacing all instances of the matching text

結果,Emacs替換了文字,如下所示。此外,Emacs在編輯器底部顯示了替換的文字數量。

Emacs replaced the search text

6. 通過在鍵盤上按CTRL+X,然後按CTRL+C退出編輯器。重新運行腳本。輸出將顯示您的新消息。

The script output

結論

通過本教程,您已經學會了使用三種PowerShell文本編輯器的基礎知識以及每種編輯器的好處。下次您需要從終端編輯文件時,不要浪費時間設置外部文本編輯器。只需打開Nano、Vim或Emacs,用幾個按鍵即可進行更改!

你最喜歡哪個 PowerShell 文本編輯器?你知道其他在這個教程中沒有提到的文本編輯器嗎?

Source:
https://adamtheautomator.com/powershell-text-editor/