3

Windows の gVim (Win7-x64 の 7.3.46 32 ビット Bram@KIBAALE Big バージョン) でAlt+にマップしたい関数がありますが、機能していません。o

私の .vimrc には次の行があります。

nnoremap <A-o> :call SplitRelatedFile()<CR>

次に、gVim を起動し、ファイルをロードして、Alt+を押すoとビープ音が鳴ります。マッピングで大文字の O を使用してみました。gVim でシフトを使用した場合と使用しない場合を試しましたが、うまくいきません。ビープ音が鳴ります。(私も試し<M-o>ました。)

ターミナルで Vim をロードすると、期待どおりに動作します。gVim の新しいインスタンスで上記の行を手動で実行すると、期待どおりに動作します。.vimrc に表示されている場合にのみ機能しません。実際には、別のファイルに表示されますが、私の _vimrc にはsource x:/path/to/my.vimrc.

の出力を見ると:map、おそらく 8 番目のビットの解釈が何かを交差させているために、alt キーが alt キーとしてリストされていません。しかし、私が見ているのは...

n  <ef>        * :call SplitRelatedFile()<CR>

gVimで手動で実行すると:nnoremap、次のように表示されます (この投稿に文字変換の問題がある場合、最初の行に i-umlaut がキーとして表示されます)。

n  ï           * :call SplitRelatedFile()<CR>
n  <ef>        * :call SplitRelatedFile()<CR>

では、8 番目のビットは、Vim の (GUI) 起動のさまざまな時点で異なる方法で解釈されているように見えますか? 価値があるのは、コンソール Vim で実行すると、行:mapではなく i-umlaut も取得される( ASCII では 0x6F なので、上位ビットが設定されている場合は 0xEF になるため、これは完全に理にかなっています; i-umlaut は0x8B である)。<ef>o

私はいくつかの異なるAltキーの組み合わせを試しましたが、どれも gVim に生き残っていないので、誰かがヒントを持っているかどうか知りたいです. たぶん、これらをローカルプラグインなどの「遅延ロード」モジュールに何らかの方法で詰め込むことができますか?

キーから離れることはできAltますが、ファンクション キーがなくなったので、この機能の明白なキーを踏みつけたくありません... + 、+の結果にCtrl置き換えることができることを発見しました。 (vimrcでi-umlautを取得するため)しかし、それはあまり良くありません!この狂気について何か考えはありますか?(ああ、これはコンソール Vim では機能しません。false を返すときのバージョンを保持する必要があります。)<A-o>CtrlvAltoAlthas("gui")

gVim とコンソール Vim の両方が i-umlaut を 0xEF として報告していることに気付きました。お願い助けて!

アドバイスをありがとう。

4

1 に答える 1

5

Altマッピング (特に8 番目のビットが設定されている との組み合わせ) は の変更の影響を受けやすく'encoding'、後で変更すると壊れる可能性があります。

原則として、必要な場合:set encoding=...は、ファイルの最初の項目の 1 つにする必要があり.vimrcます。

于 2012-12-29T02:30:10.067 に答える