Open6

Windows Terminal を使ってみる

hankei6kmhankei6km

インストール

winget install --id Microsoft.WindowsTerminal -e

scope は指定しなかった。管理者でログオンするように言われなかったので user になっていると思う。

とくに引っかかるところはなかった。32bit Home でもインストールできた。

hankei6kmhankei6km

操作

タブ操作などは VSCode ぽい感じ。

F11 でフルスクリーンになる(が、tmux とか使っていないとステータスバーがなくて使いにくいかな)。

そして MarkMode は結構うれしい。

https://learn.microsoft.com/ja-jp/windows/terminal/selection#keyboard-support

https://forest.watch.impress.co.jp/docs/news/1423080.html

コマンドパレットがある。が、絞り込みは日本語でないと引っかからないコマンドもある(マークモード はダメだった)。

クリップボードはターミナル側へいわゆる日本語を貼り付けると文字化けするときがある。デフォルトの Powershell はコマンドライン上でやると化ける。この辺はクリップボードというよりもロケールとかの設定かな。SSH 接続したときに LANG とか設定しないと少しあやしい。

hankei6kmhankei6km

VSCode で Remote に接続しているときに外部ターミナルにする

外部ターミナルに wt.exe を指定した場合、ローカル側のシェルなどが開く。

リモートで開くには拡張機能が必要。

https://marketplace.visualstudio.com/items?itemName=Tyriar.windows-terminal

Dev Container はローカルに Docker が必要。が、Windows に Docker はいれてないので試していない。

Codespaces はサポート外で利用できない。

以下、CodeSandbox との組み合わせの場合。

CodeSandbox 拡張機能から普通に接続している場合は、SSH 接続で開くことを確認できた。ただし、環境変数(PATHVSCODE_IPC_HOOK_CLI など)は設定されていないので code コマンドを使ったりはできない。

環境変数については、Dev Containers の方では .env 的なものを作って回避している例もある。が、これはちょっと厳しいかな。

https://github.com/microsoft/vscode/issues/110050

なお、SSH で接続できる状態になっていれば拡張機能を使わなくても、ssh -F ~/.ssh/csb/config で CodeSandbox の VM のホスト名を指定することで接続できる(ホスト名は VSCode の Recent か ~/ssh/csb/config の中身を見ればだいたい見当が付く)。

Dev Cotantainers は無理して Podman を使っている場合はダメそう。ローカルに Podman をインストールして podman-docker ぽい設定にして試してみたがエラーになる。対応としては、SSH で接続した状態から podman exec を使うことはできる(めんどうだし、環境変数の問題もある)。

Dev Container の場合は tmux を入れてあるので integrated の方でセッション作っておいて external から attach すれば環境変数を引き継げる、という手もなくはない。

こんな感じにはできる。が、VSCode のエディター(タブ)上で integrated なターミナルを開いても似たような感じなので、使うかは悩みとどころ。あと、ターミナルの中で code コマンドを使ったときにフォーカスが切り替わらないのもやりにくい。

Windows Terminal 上で tmux を利用し "ranger" "neofetch" "npm run test" を実行しているスクリーンショット

hankei6kmhankei6km

設定

キーバインドは Profile 別に設定できない?

とりあえず少し変更した。

  • キーバインドで貼り付け ctrl + v を削除、Vim の範囲選択とあたる
  • ベルはすべてオフ

あとは、配色を変更した。

hankei6kmhankei6km

Vim のカーソルの形

SSH で接続して Vim を使ったときに、カーソルの形(ポインター)が固定なのが妙に気になった。
検索すると対応法を記載されている記事が見つかる。

https://snyt45.com/aKv0HdyTu
https://qiita.com/Linda_pp/items/9e0c94eb82b18071db34

Windows Terminal への設定ではなく Vim 側の設定になるので、下記のようになる。

  • Windows Terminal から利用する各 Vim(.vimrc)に設定しないと適用されない
  • 設定してあれば他のターミナル環境(VSCode の integrated など)でも適用される

他のターミナルではボックス固定に慣れているので、全体的には設定したくない(試してみたら違和感バリバリだった)。Windows Terminal から接続することが多そうな Dev Containers 用の .vimrc にとりあえず設定。