パーソナルツール

vimエディタで発生したエラーを解決する

作者: 小見 拓 最終変更 2012年01月08日 12時00分

vimエディタを使用していてエラーが発生した時、 そのエラーのコードさえ分かれば、即座に問題の解決がはかれる場合があります。 この記事では、そのエラーの原因の特定、解決の方法の調べ方を説明します。 (Windows, Mac)

概要

vimエディタを使用していてエラーが発生した時、
そのエラーのコードさえ分かれば、即座に問題の解決がはかれる場合があります。
この記事では、そのエラーの原因の特定、解決の方法の調べ方を説明します。

「help」コマンドで、エラーの原因と解決策を調べる

最初にエラーのコードを特定する

今回説明する方法で解決できるのは、エラーのコードが表示されている場合です。
まず、エラーのコードを特定してください。
エラーのコードは

  • vimエディタのウィンドウで表示されたり、(E97)
vimエディタのウィンドウでエラーコード表示
  • ダイアログで表示されたり、(E174)
エラーコードをターミナルで表示
  • 起動時にターミナルで表示されたりします。(E492)
エラーコードをダイアログで表示

これらの例の場合だと、
「E97」「E174」「E492」がエラーコードとなります。

Note

エラーコードと一緒に表示される他のメッセージも 問題解決のための重要な情報となります。

「help」コマンドで原因を検索

エラーのコードを特定したら、 そのコードを「help」コマンドで検索します。
エラーのコードを引数に「help」コマンドを実行してください。

:help エラーコード
" コマンド例
:help E97

エラーの原因を修正する

エラーコードが表示されるようなエラーの場合、 「help」コマンドでエラーの原因が表示されると思います。
(運が良ければ解決方法も)

表示されるメッセージを使って、問題の解決をはかってみてください。

" コマンドの実行例と、表示されるメッセージ
:help E97
                        *E97*
Vim will do a test if the diff output looks alright.  If it doesn't, you will
get an error message.  Possible causes:
-  The "diff" program cannot be executed.
-  The "diff" program doesn't produce normal "ed" style diffs (see above).
-  The 'shell' and associated options are not set correctly.  Try if filtering
   works with a command like ":!sort".
-  You are using 'diffexpr' and it doesn't work.
If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages.

The self-installing Vim includes a diff program.  If you don't have it you
might want to download a diff.exe.  For example from
http://jlb.twu.net/code/unixkit.php.
" コマンドの実行例と、表示されるメッセージ
:help E174
                            *E174* *E182*
:com[mand][!] [{attr}...] {cmd} {rep}
            Define a user command.  The name of the command is
            {cmd} and its replacement text is {rep}.  The command's
            attributes (see below) are {attr}.  If the command
            already exists, an error is reported, unless a ! is
            specified, in which case the command is redefined.
" コマンドの実行例と、表示されるメッセージ
:help E492
                            *E492*
  Not an editor command

You tried to execute a command that is neither an Ex command nor
a user-defined command.

エラーコードが表示されないケース

この方法では解決できない、エラーコードが表示されないケースとしては、
次のような場合が考えられるでしょうか。

  • システムで起きたエラー(突然アプリケーションが落ちるとか)
  • スクリプトで表示しているエラー(エラーメッセージが表示されるが、コードは表示されないとか)

前者を解決するのは難しいことが多いでしょう。
素直に開発者に連絡するのが良いのではないかと思います。
(システムログあたりを見ると原因が分かることもある。)

後者の場合は、エラーを起こしているスクリプトを覗くと、
なぜエラーが起きたのか分かることがあります。
バージョンのチェックなどで、メッセージが出ていることが良くあります。

ドキュメントアクション
コメント
blog comments powered by Disqus