通常、Windows のターミナル (Windows Terminal) で文字入力位置を変えるにはいちいちキーボードの矢印キーでカーソル位置を移動する必要があります。
(macOS のターミナルであれば Optionキー+クリックでそこにカーソルを移動できる)
探したらマウスクリックで簡単にカーソル(キャレット)の位置を移動する方法があったので、有効にする手順を以下にメモします。
↑クリックでカーソル位置を一瞬で移動できて超便利!
注意点
使用環境は Windows Terminal (※Windows 11 に標準で入っているターミナル環境) で、対象は PowerShell です。
(コマンドプロンプトで利用するには、PowerShell でコマンド「cmd」を使って PowerShell 上でコマンドプロンプトを実行すればOK。)
この機能を有効化するには PowerShell の実行ポリシーの変更が必要なのでその点はご留意ください。。
(Restricted → RemoteSigned に。方法は後述。)
現段階では実験的機能という位置づけみたいなので、正常に動作しない環境もあるかもしれません。(自分の Win11 環境では動いた)
Windows Terminal 側の設定変更
まずはターミナルを起動。
メニューボタンをクリックして「設定」を開く。
「既定値」設定の「詳細設定」をクリック。
「試験段階: マウスのクリックでカーソル位置を変更する」をオンにする。そして「保存」をクリック。
という記載がある通り、追加でシェル統合のための設定が必要。
(この段階ではまだクリック操作でカーソル位置を変更できない)
Windows Terminal のシェル統合を有効にする
有志が作成した Windows Terminal のシェル統合プラグインをインストールする。
Plugin solutions to enable shell integration on Windows Term…
シェル統合の有効化手順
ターミナルを管理者として起動する。
次のコマンドを実行する。
Install-Module wt-shell-integration -AllowClobber
※もし実行後に次のようなメッセージが表示されたら、「Y」と入力して Enter で実行。
⋮ (中略)
NuGet プロバイダーをインストールしてインポートしますか?
外部のリポジトリからモジュールをインストールするので次のようなメッセージが表示される。
「Y」と入力して Enter で実行。
信頼されていないリポジトリからモジュールをインストールしようとしています。
⋮ (中略)
'PSGallery' からモジュールをインストールしますか?
次に、このコマンドを実行する。
Import-Module wt-shell-integration; ac $profile "`nImport-Module wt-shell-integration" -encoding utf8 -nonewline
※次のような警告メッセージが表示されて実行できなかった場合
(デフォルトの実行ポリシーではセキュリティの関係上スクリプトが実行できないようになっている)
発生場所 行:1 文字:1
+ Import-Module wt-shell-integration; ac $profile "`nImport-Module wt-s ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) [Import-Module]、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand
このターミナル内でだけ実行ポリシーを緩めて、外部からダウンロードしたスクリプトを実行できるようにすればよい。
次のコマンドを実行する。
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
改めてこのコマンドを実行する。
Import-Module wt-shell-integration; ac $profile "`nImport-Module wt-shell-integration" -encoding utf8 -nonewline
実行後、特に何もエラーが表示されず入力待機状態になれば設定完了。
この時点で、マウスクリックだけでカーソル位置を自由に変えられるようになっている!
この機能を常に許可する
残念ながら PowerShell 側のセキュリティ設定が厳しすぎて、一旦ターミナルを閉じてしまうと次回起動時に次のようなエラーが出て結局この機能が使えなくなってしまう。
発生場所 行:1 文字:3
+ . 'C:\Users\ユーザー名\Documents\WindowsPowerShell\Microsoft.PowerShell_pr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
次のコマンドを実行して、今のユーザーの実行ポリシーを恒久的に変更する必要がある。
Set-ExecutionPolicy RemoteSigned -scope CurrentUser -force
これで実行ポリシーが、スクリプトを実行できない Restricted からローカルスクリプトと署名付きのリモートスクリプトのみ実行できる RemoteSigned に変更され、問題なく使えるようになる。
試しにターミナルを再起動して、エラーメッセージが表示されなくなればOK。
使い方と制約
上記の設定を一通り済ませれば、あとはターミナル起動時に自動でこの機能が有効になりマウスクリックだけでカーソル位置を移動できるようになっている。
追加される機能はあくまでクリックによるカーソル移動のみなので、例えばドラッグで範囲選択してバックスペースでまとめて選択範囲を消すなんてことはできない。
参考情報
Windows ターミナルの詳細プロファイル設定 | Microsoft Learn
↑今回説明したクリックによるカーソル移動以外にも、ターミナルを便利にする色々な設定があるみたいです。
Windows ターミナルのシェル統合 | Microsoft Learn
リンク:https://learn.microsoft.com/ja-jp/windows/terminal/tutorials/shell-integration