0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows Terminal + Vim 使用時の諸問題(91 文字問題、 1c 問題)の解決策

Last updated at Posted at 2023-04-16

動機

Windows Terminal (Windows 11 + WSL + Ubuntu) で Vim を使おうとしたときに、タイトルに記載したとおり 2 つの障壁(ここでは 91 文字問題および 1c 問題と呼びます)に当たりました。しばらく不便な思いをしながら使っていましたが、文献を漁ってみたところなんとか解決策に行きつくことができたため記録しておきます。

環境

Windows ターミナル
バージョン: 1.16.10262.0

$  cat /etc/*release | grep pretty
PRETTY_NAME="Ubuntu 22.04.2 LTS"

$ vim --version # ローカルや ssh 接続先の複数環境で再現
VIM - Vi IMproved 7.4
VIM - Vi IMproved 8.2

$ echo $TERM
xterm-256color

 # Vim 上で :set ttymouse した時の応答
ttymouse=xterm

『91 文字問題』

set mouse=a ありで Vim を使用する際に各行の 91 文字目までがマウス操作可能、それ以降が不可能となる問題です。文字数については 93, 222, 224 と論じられている文献もあります。

下記 Stack Overflow の質問に対する回答に記載されているとおり、 ~/.vimrc に set ttymouse=sgr を追加することで解決されます。

『1c 問題』

Vim で何らかのファイルを開くといきなり 1c というコマンドが入力された状態となってしまい、これを消さないままキー入力やマウス操作をすると望まない文字列入力・削除が発生してしまうという問題です。起動直後のみの問題でそれ以降は通常通り使えます。

Windows Terminal の GitHub リポジトリのとある issue でも論じられています。

技術的な詳細は理解できていませんが、環境変数 TERM の変更が効果を持つらしいのでこれを利用します。

利用できる TERM の選択肢は toe -a コマンドで閲覧できます。デフォルトでは xterm-256color となっていて、私は古い環境に ssh 接続して作業することが多いためどの環境にもありそうなものを選びたい一方で 256 色は使いたいということを勘案して、なんとなく screen-256color を選んでみます。

最初はローカルで export TERM=screen-256color してみたところ、 Vim 自体は問題なく動き同問題も解消されましたが、 less コマンドなどで見た目が良くない方向に変わってしまったので、下記のとおり Vim 実行時のみ利用することにしました。少し使用してみた感じでは見た目に全く違いはなく、使い勝手に関する問題も発生していません。

alias vim="TERM=screen-256color vim"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?