windowsでneovimを使うとデフォルトではshellcmd.exeになってる上にshiftJISになってるので日本語(など)が表示できない。 なので、

  1. shellpowershellないしpwsh(core)にし、
  2. utf8で出力する

必要がある。 設定に難儀したのでメモ。

結論

nvimで:help powershellと打てば設定の書き方があるので、それをそのままコピペすればいい。 自動的にPowerShell Coreがある場合はそっちを使い、Encodingもutf8にしてるし、-NoProfileもあるのでそのまま使える。

ただ、ターミナルの文字に色を付けるためのANSIエスケープコードはそのまま表示される。 非表示にする方法は変数を変えるしかなさそう?1


  1. About ANSI terminals - PowerShell | Microsoft DocsOut-Fileのヘルプを見る限り. Out-Fileで個別に指定できれば楽だった. もしかしたらpwshの引数で指定できるかもしれない? ↩︎