Vimシェルはスクリーン全体を使うことも一部を使うこともできる。Vimアプリケーション。スクリーン全体(例えばコンソールで実行した時)、あるいはその一部(xtermやGUI)。Vimは複数のウィンドウを持つことができる。ウィンドウはコマンドラインやメニューバー、ツールバーなどといっしょに表示される。これらはシェルに納まる。スペルチェックを追加することになったとき、利用可能なスペルチェックのライブラリやプログラムについて調査が行われた。内でスペルチェックエンジンとして使えるものはないとわかった。マルチバイトエンコーディングをサポートしていない。サポートしていなければならない。対応している必要がある)。別個にインストールしなければならない。これはたいてい不可能ではないが、難点である。いくつかのテストによると、スペルチェックを構文強調のようにオンザフライで(再描画中に)行うことは可能であった。他のコードで使われたメカニズムはもっと遅かった。ハッシュテーブルを使用する。ほとんどのスペルチェッカが使用している接辞圧縮を使うと遅くなった。ような外部プログラムを使うには、通信メカニズムを用意しなければならない。比較的簡単だが、それでは十分ではない)。パフォーマンスが問題になる(何回ものプロセス切替が行われる)。単語でない単語のサポートを欠いている。とマークしなければならないが、そうすると信頼性が低下する。地域や方言のサポートを欠いている。英語の単語をすべて受け付け、カナダ語でない単語を別に扱うことが難しくなる。頻度が低い単語のサポートを欠いている。語が、よく使われる単語のスペルミスとみなされてしまう。スペル候補を作成するには速度はそれほど重要ではなく、他のプログラムやライブラリをインストールすることは許容できる。単語リストが異なるとスペル候補が誤単語になってしまう。誤った単語を少し変更して正しい単語とマッチするかチェックする。正しい単語全てに対し、それを少し変更して誤った単語とマッチするかチェックする。変更とは、文字の削除・文字の挿入・2つの文字の交換などである。行って、そこでマッチを見つける。様にいくつか変更をしてもよい。最初のメカニズムはタイプミスを見つけるのにはよい。ハッシュテーブルの実験と、他のスペルチェッカのソリューションを見ると、これにはtrie(ツリー構造の一種)が最適であるとの結論になった。メモリ使用量の削減と、賢い変更を試みるということの両方の面でである。文字を挿入するときは正しい単語につながる文字だけを試せばよい。そのためメカニズムがより単純になる。書いてしまうかもしれない。これを最初の方法で訂正しようとすると変更回数が非常に多くなってしまい、正しいスペルを見つけるのは困難である。なり、2文字しか違わない。soundfoldの同値(音が似ている単語)により単語を見つけるには全てのsoundfoldedwordsのリストが必要である。どれが最良の方法かを探すための実験が行われた。foldingを行う。正しい単語のtrieをたどりながら、各単語をsoundfoldingし、それがスペルミスしている単語からどれだけ異なるかをチェックする。英語の場合、高速なPCで2秒ほどかかる。これは対話的な利用として受け入れられる。いくつかの言語(ドイツ語、カタルニャ語など)に対しては10秒以上かかり、受け入れがたい。バッチ処理(自動訂正)に使うには全ての言語で遅すぎる。soundfoldされた単語に対してtrieを使い、soundfoldingなしのときとまったく同じように検索できるようにする。そのためには、soundfoldされた各単語に対し、正しい単語のリストを記憶しておく必要がある。すると照合がとても高速になるが、1MB〜10MBのオーダーの大量のメモリを必要とする。ある言語の場合は元の単語のリストよりも多くなる。2番目の案と同様だが、接辞圧縮を使い、soundfoldした基本単語だけを保存することによりメモリ消費量を減らす。これはAspellが採用している方法である。不利点は、誤った単語をsoundfoldする前に接辞を取り除いておかねばならないことである。そのため、単語の先頭・末尾における誤りに対しては対応できない。誤った単語が正しい単語から大きく異なるときは遅くなる。我々が採用したのは、2番目のメカニズムを使い、別ファイルを使う方法である。することによって、十分なメモリを持っているユーザーはとてもよい候補を得ることができるし、メモリが不足しているユーザーやスペルチェックだけで候補は出さなくてよいというユーザーはそれほどメモリを使わなくてすむ。候補をソートするにはどの単語が共通であるかを知ると役に立つ。度は単語とともに辞書の中に保持することができる。すると単語につき回数を保持しなければならない。これは単語ツリー圧縮を大いに劣化させる。全ての言語に対して単語の頻度を保守するのは大変な作業である。テキストに既に出てきている単語を優先するとよいだろう。このようにして特定のテキスト内に表れる単語は候補の中で優先度が高くなる。実装されたのは、表示中に単語を数えることである。語の回数を高速に検索する。回数は接辞ファイルでCOMMONアイテムにリストされている単語から初期化される。そのため新規ファイルの編集を始めたときも機能する。これは理想的ではない。Vimが長時間稼働しているほど回数は大きくなるためである。実用的には単語の回数を使わない場合に比べて注目に値するほどの改善である。いくつかのコンパイラは長すぎる行は文字列をうまく扱えない。C89の標準規格では509文字までに制限されている。zip間違いを見つけたらメーリングリストかissueトラッカーでお知らせください。