JAWSでgvimを使う

JAWSユーザがWindowsのエディタとしてgvimを使うための設定がわかってきたので書いてみます。
以下のようにするとひとまずvimとして利用できるようになります。基本はJAWSにカーソルを認識させることと、反転表示を強調部分として認識しないようにするという二つです。追加の応用として、上下矢印キーで移動した時に画面上の改行単位で移動する設定も書いてみます。

(12/23追記)linespaceの設定を追加しました。また、水平カーソルはもう少し細くてもいいかもしれないので直しました。

利用した環境

_gvimrcはこのパッケージに含まれている_sample_gvimrcを_gvimrcにコピーしたものをベースに設定を追加しました。

カーソルをJAWSが認識できるようにする

gvimのカーソル形状

gvimのカーソルはモードによって切り替わるのがデフォルトですが、多くのモードではブロックカーソルになっています。JAWSは縦型または横型カーソルしか認識しないようなので、変更する必要があります。また、縦型カーソルだとJAWSが認識するカーソル位置が揺れてしまうため、結局は横型(水平)カーソルにする必要がありました。
以下の設定はすべてのモードで水平カーソルにします。

set guicursor=a:hor10-Cursor/lCursor
JAWSが幅広の水平カーソルを認識できるようにする

上の設定を入れるとカーソル位置が安定してとれるようになりますが、日本語が書かれた行にいるとカーソルを見失ってしまいます。gvimは日本語のような幅広の文字では水平カーソルを広げて表示するため、JAWSが水平カーソルと認識する幅を超えてしまうのです。
そこでgvimを起動した状態でJAWSキー+F6でJAWS設定センターを開き、「キャレットおよびカーソル」の中にある水平カーソルの最大幅を最大値の30に設定してしまいます。

反転表示を強調表示と思わないように設定する

gvimのステータス行は黒地に白で、JAWSはこれを強調表示と認識し、カーソル位置にかかわらずそこを読もうとしてしまいます。これをさせないように設定します。
JAWS設定センターから「ハイライトカラーの設定」を開き、「ハイライトカラー」を「カスタムのみ」に設定します。

行間隔を広げる

これだけだと日本語を含む行の下の行がなぜか点字表示されないという問題があります。そこで、行間隔を少し広げます。広げすぎるとカーソルをとれなくなるみたいなのでこれくらいが適当です。

set linespace=2

上下矢印キーで移動時に物理行で移動する

JAWSは上下矢印で移動した時にその(画面上の)行を読み上げるので文書やコードを読むのに使える訳ですが、これが論理行単位だと折りたたまれた2行目以降を読み飛ばす可能性があります。
元々vimにgj, gkという物理行移動のためのコマンドがあるので、これを上下矢印キーに割り当てます。j, kの動作も変更する人もいますが、ここはJAWSの挙動に関係ないので私はそのままにしました。

nnoremap <Down> gj
nnoremap <Up> gk

gvim.jcf

JAWS設定センターで設定した後のgvim.jcfファイルを貼り付けておきます。

[Options]
UseCustomHighlight=2
[OSM]
HorizCaretMaxX=30