見出し画像

VSCode の PS で Emacs キーバインド

Rust を勉強し始め、今までほとんど使ってなかった VSCode を立ち上げる機会も増えました。

Windows 用の exe を Rust で作りたいな、と思っているところがあるので、テストやコンパイル時に Windows PowerShell(以下 PS) を VSCode 内で使うようになりました。

コマンドラインをいじる際に、個人的に慣れているのが Linux bash の Emacs モードなので PS でも同じようにしたいなぁと思い調べて設定しました。

bash 環境とは勝手が全然違って、「覚えきれないよ~」と思ったので手順をメモしておきます。

PSReadLine が必要

Microsoft のヘルプページを読んで進めます。

まず、PSReadLine というのを入れないといかんよ、ということらしいので、

Install-Module -Name PSReadLine -AllowPrerelease

を PS で実行しました。
が、僕の環境では「既にインストールされてんで」と返されました。

予測 IntelliSense を有効に

予測変換を有効にする PS のコマンドを実行してみます。

Set-PSReadLineOption -PredictionSource History

Emacs 風キーバインドに

本願のこれ。別記事を参照しました。

Set-PSReadLineOption -BellStyle None -EditMode Emacs

そして、この記事を読ませていただいていて、そういやそうだと気付いたこと。↓

ただしこれだけでは、シェルを閉じたときに設定値が失われてしまうので、.bashrc 的なものに設定情報を保存しておく必要がある

https://qiita.com/ymizushi/items/ed4d45424fe3431bf148

$profile PS のユーザ設定

こちらの記事を参考にさせていただきました。

PS で

$profile

とぽつんと打ち込んでエンターすると、設定ファイルのパスを教えてくれます。

ちなにみ僕の環境では

C:\Users\(ユーザ名)\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

でした。
PS のバージョンによって違うようです。

上記のファイルを作成して設定を書き込みたいわけですが、$profile は参照パスを示しているだけで、そのファイルやファイルを格納しているフォルダが存在するかどうかとは関係のない変数です。

なのでまず、C:\Users\(ユーザ名)\Documents\PowerShell というフォルダが存在するか確認し、なければ作ります。
エクスプローラーで作っちゃってもいいし、せっかくなので PS で次のように打ってもOKです。

test-path $profile

↑ これは存在確認。False が返ってきたらそのパスは存在しないということです。

False の際にまずフォルダを作るには

mkdir C:\Users\(ユーザ名)\Documents\PowerShell

という感じ。
(「そのフォルダはもうあるよ」と言われることもあります。)

ここまでくれば、$profile の値に従ってファイルを作り、その中に設定したい内容を書き込めばOKです。

VSCodeでもメモ帳アプリでも、好きなエディタで $profile で指定されているファイルを開いてください。(というか「保存してください」のほうが正確か。)

僕の場合だったら C:\Users\(ユーザ名)\Documents\PowerShell まで行って、Microsoft.PowerShell_profile.ps1 というファイルを作成すれば $profile に従ったことになります。

$profile の中身には、

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -BellStyle None -EditMode Emacs

↑ この記事の前半で紹介したコマンドをただ単にそのまま記載してやればいいだけです。

こうしておくと、次回 PS を VSCode 内で立ち上げたときに設定が有効な状態で起動してくれます。やった。

SN

この記事が気に入ったらサポートをしてみませんか?