実際のPowerShellテキストエディターでファイルを編集する方法

テキストファイルを読み込んで、ファイルにいくつかの誤ったエントリがあることを検出するスクリプトを実行しましたか?そのような状況では、PowerShellテキストエディタが便利です。外部エディタを起動する必要はありません。代わりに、PowerShellを離れずにファイルを編集することができます。それはどれほどクールですか?

読み続けると、PowerShell内でテキストファイルを編集するための3つのテキストエディタ(NanoVimEmacs)のインストールと使用方法を学ぶことができます。このチュートリアルでは、それぞれの利点もカバーし、どれが最適なものかを選ぶのに役立ちます。

さあ、始めましょう!

前提条件

このチュートリアルは実践的なデモンストレーションです。一緒に進める場合は、以下のものを準備してください:

  • 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)が必要です。

PowerShellテキストエディタとしてのNanoの使用方法

ターミナルベースのテキストエディタに初めて取り組む場合、またはファイルを簡単に編集する必要がある場合、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スクリプトを作成および編集することになります。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を押します。

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 (to replace)プロンプトの横に入力し、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

PowerShellのテキストエディタとしてVimを使用する

VimはNanoよりも多機能で、セッションの復元、構文の色付け、ウィンドウの分割、自動補完などの機能があります。Nanoは素早いファイル編集用に作られており、VimはIDEの代替としても軽量な選択肢です。

ただし、Vimが提供する追加機能には学習コストがかかります。しかし、諦めずに取り組んでください。Vimは優れたエディタです。

Vimのインストール

さあ、Vimのインストールを開始しましょう。

1. 管理者としてPowerShellを開きます

2. PowerShellターミナルで、Vimエディタをインストールするために以下のコマンドを実行してください。

choco install vim -y

3. Vimのバージョンを確認するために、以下のコマンドを実行してください。 vim --v

vim --version
Verifying the Vim version

ファイルの編集と保存

Vimがインストールされたので、さあ手を汚してファイルの編集を学びましょう。さらに進む前に、Vimには異なるモードがあることを知っておくべきです。各モードは異なる動作をし、エディタ内で行うことができるアクションに影響を与えます。

一般的に使用される3つのモードは次のとおりです:

  • ノーマル – Vimを開くとすぐにデフォルトのモードになります。このモードではテキストファイルをナビゲートすることができますが、新しいテキストを追加することはできません。
  • インサート – このモードではVimがファイルを編集することを許可します。このモードに入るには、キーボードでiを押します(大文字小文字を区別しません)。ノーマルモードに戻るには、ESCを押します。
  • コマンド – このモードでは、ファイルの保存、Vimの終了、ヘルプドキュメントの表示などのコマンドを実行できます。

Vimでファイルを編集するために、以下の手順に従ってください。

1. Vimでファイルを開くには、vimコマンドの後に開きたいファイル名を指定してコマンドを実行します。以下のコマンドはmyPowerShellScript.ps1ファイルを開きます。

vim myPowerShellScript.ps1

Vimテキストエディタが開くと、次の画像のように表示されます。Vimは構文の色分けをサポートしているため、PowerShellコマンド‘Write-Host’とメッセージ‘Hello World!’が異なる色で表示されます。

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

たとえば、以下のコマンドは単語Helloを単語Goodbyeに置換します。

:%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

PowerShellのテキストエディタとしてEmacsを使用する

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 を編集するためにemacsを開きます。-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

結論

このチュートリアルでは、3つのPowerShellテキストエディタの基本を学び、それぞれの利点を理解しました。次回ターミナルからファイルを編集するときは、外部のテキストエディタをセットアップする時間を無駄にせずに、簡単にNano、Vim、またはEmacsを開いて数回のキーストロークで変更を加えることができます!

このチュートリアルでは紹介されていない他のテキストエディタはありますか?それぞれのPowerShellテキストエディタで最も好きなものは何ですか?

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