Windows 11にアップグレードして wsltty上で日本語が化ける様になってしまったので Winodws純正のWindows Terminalを使ってたんですが、 日本語入力に難があるのでhyperに乗り換えました。
Windows 11でのターミナル問題
Windows 11はWindows 10からだと無償でアップグレードが出来るので 一般に配布された直後に入れてみました。
タスクバーやスタートメニューに関して少し見た目が変わったりしましたが、 中身的にはあまり変わってない印象。
アプリなども特に問題なく使えてましたが、 WSL2を使うために使っていた ターミナルアプリのwsltty で日本語が化けるようになってしまいました。
いろいろ試したものもうまくいかず、 一方でWindows 11からはWindows純正のWindows Terminalが コマンドプロンプトやPowerShellを使うのにも使うターミナルとして 組み込まれていて、これでWSLも使えるためこれに乗り換えていました。
ただ、問題として日本語を入力しようとすると少し問題があります。
Vimとかで右端の方で日本語を入力しようとると、変換中はうまく次の行に折り返しが出来ず、 右端の変換されている文字幅の下にどんどん追加されていく様な入力になります。 (一番右端で書き始めると下に一列に文字が入っていくような形。)
さらに、文章の途中に日本語を入力すると、後ろにある文字列と変換中の文字が被って意味わからないことになります。
変換を決定するとちゃんと入力されるのですが結構気持ち悪いです。
Hyper
HyperはHTML/JS/CSSを使って作られたターミナルエミュレーターです。
拡張機能などをWebアプリ感覚で作れるのでWeb開発をしてる人には手を入れ込むのが 簡単だったりします。
マルチプラットフォームに対応していて、 Windows、macOSに加え、様々なLinux環境でも使えます。
5年以上前に出た頃にちょっと試して面白いな、と思いつつ、 まだちょっと荒い感じがあって使ってませんでしたが、今回改めて使ってみることに。
以前(といっても調べたのは5年以上前)出来てなかった256色カラーは対応するようになっていました。
日本語に関しては全く問題なく表示でき、入力も問題なく出来ました。
その他に関しても特に違和感なかったのでとりあえずこれで良いかな、と。
設定ファイルはメニューのEdit->PreferencesやCtrl-,で開くか、 または
C:\Users\<User>\AppData\Roaming\Hyper\.hyper.js
にあるファイルを直接編集します。 Hyperではこのファイルを編集して保存すると自動的に設定が読み込まれてターミナルがアップデートされる様になっています。
一旦デフォルトのファイルを以下の様に書き換えて使っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
- FontをCascadia Monoに
- カーソルを白に。
- カーソルを点滅するように。
- 外枠の幅をゼロに。
- 起動時にWSLを起動するように。
- 文字列選択時にコピー。
- 右クリック時にペースト。
といった感じ。
WSLに関しては、shell
でwslの実行ファイルを指定し、shellArgs
を~
と指定してあげる必要があります。
通常のコマンドプロンプトで開いた場合には
wsl
というコマンドを打てばwslに入る事もできます。
うまく出来てないこと
- Vim内でインサートモード時にカーソルを変更できない
Vim/Neovimではノーマルモードとインサートモードでカーソルをブロックから線に変更することで モードに違いを簡単に認識できる様になっています。
このあたりは設定次第と言うこともあるのですが、Windowsターミナルとかだとその変更ができる状態になっているにも関わらず、
Hyper上では指定したcursorShape
から変わりません。
Neovim cursor shape does not change on insert mode · Issue #2765 · vercel/hyper
このあたり、昔にも問題になって、一度はプラグインの悪さだった的な話もあったみたいですが、 また今も問題は起きているようです。
一応下のステータスラインですぐにチェックできるようにしていたりするのでそこまで 絶対というわけではないのですが、やはりできればほしい機能です。
- 文字列選択した場合に反転表示にできない?
selectionColor
という設定があり、この色がマウスで文字列を選択した際に
背景色として使われます。
一方、他の多くのターミナルではマウスで選択すると背景色と文字色を反転させて表示させます。
背景色を指定してしまうと、仮にその色と文字色が同じだったり似たようなものだと見にくくなってしまいます。
とりあえずはデフォルトの表示が薄い紫の様な色でその色だと大体問題なく見えるので そのままにしてありますが、もし可能なら反転状態にさせたいな、と。
これは割とCSSとかの定義で簡単にできそうな気はしていますが、気が向いたらそのうちまた。
macOSでは
HyperはmacOSでも使えるので、色々カスタマイズしていい感じに出来るならMacでも共有して 使っても良いかな、とは思ってます。
ただ、今の所上の様な問題があって、一方でMacで使っているiTerm2はかなり快適なので 今のところはMacでHyperを無理に使わなくても良いかな、という感じです。