vimを実行するとエラーメッセージが出る
問題
さくらのレンタルサーバーはssh接続できてよいのですが、
vimコマンドで以下のようなエラーメッセージが表示され、いちいち止まります。
$ vim index.php E558: Terminal entry not found in terminfo 'gnome' not known. Available builtin terminals are: builtin_amiga builtin_beos-ansi builtin_ansi builtin_pcansi builtin_win32 builtin_vt320 builtin_vt52 builtin_xterm builtin_iris-ansi builtin_debug builtin_dumb defaulting to 'ansi'
答え
いきなりこのエラーメッセージを見ると何を言っているのかよくわからないかもしれませんが、以下のことを教えてくれています。
- 端末の設定が ‘gnome’ になっているよ(環境変数の TERM が ‘gnome’ になっている)
- そんな端末は知らないぞ(terminfo は端末のデータベースで、この中にないよと言っています)
- 利用可能な端末はこれこれだよという一覧
- ‘gnome’は知らないから、デフォルトの’ansi’にしたよ
TERM=ansi の状態だと、vimで矢印キーで移動できない、BackSpaceで削除できないなど、使い心地がいつもと違う人もいると思います。
設定を変えると、エラーも出なくなり、いちいちエラーで止まらなくなり、使い心地もいつもの感じに近づきます。
現状の確認
$ echo $TERM gnome
~/.profile で設定を変える
文字化けも解消したかったら、LANG=ja_JP.UTF-8 も追加するとよいかもしれません。
以下は、さくらのレンタルサーバーでの ~/.profile の変更例です。
$ vim ~/.profile # $FreeBSD: src/share/skel/dot.profile,v 1.22.6.1 2008/11/25 02:59:29 kensmith Exp $ # # .profile - Bourne Shell startup script for login shells # # see also sh(1), environ(7). # # remove /usr/games if you want PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$HOME/bin; export PATH # Setting TERM is normally done through /etc/ttys. Do only override # if you're sure that you'll never log in via telnet or xterm or a # serial line. # Use cons25l1 for iso-* fonts # TERM=cons25; export TERM TERM=xterm; export TERM LANG=ja_JP.UTF-8; export LANG BLOCKSIZE=K; export BLOCKSIZE EDITOR=vi; export EDITOR PAGER=more; export PAGER # set ENV to a file invoked each time sh is started for interactive use. ENV=$HOME/.shrc; export ENV [ -x /usr/games/fortune ] && /usr/games/fortune freebsd-tips
# TERM=cons25; export TERM の行をアンコメントするのでもよいです。
変更されたことの確認
$ echo $TERM xterm
vim の動作も gnome の時とは変わっています。
コメント