2010-11-21 14 views
5

非guiモードでVimのキーボードマッピングを再定義する必要があります。Vimでメタファンクションキーの組み合わせを設定するには?

次のコマンドが動作しない理由を私は単純に理解していない:

:set <M-F5>=^[[15~ 

"E518: Unknown option: <M-F5>=^[[15~" 

非ファンクションキー単独F5キーまたはメタのマッピングを行い、一方、仕事:

:set <F5>=^[[15~ 

"ok" 

:set <M-space>=^[[15~ 

"ok" 

どのようにVimのファンクションキーF1〜F12でAlt/Metaを再定義しますか?

Thxです。

デビッド

アップデート:私の.vimrcに質問補正 私は、次のキーの組み合わせマッピング

autocmd Filetype python noremap <buffer> <silent> <M-F9> :w !pylint -E %<CR> 

を持っていますが、それが唯一のgvimで作業を行います。 残念ながらVimは非GUIバージョンのVimでは動作しません.Vimは直接のMeta-F9キーコードの代わりにエスケープシーケンス「^ [[20〜」]を受け取るためです。

inoremap <M-i> <Tab> 

はこちらをご覧ください:

:動作しない場合は

、これを試してみてください。ここ

+0

は本当に 'set'は、キーをマップするために使用することができますか?私は 'map'を使います。 ':'マップ。 – khachik

+0

混乱して申し訳ありませんが、マッピングではなくキーコードの組み合わせをリセットしていました。謝罪いたします。 –

答えて

1

はVimのウィキからの例です
inoremap <ESC>i <Tab> 

これはハックであり、おそらくあなたと一緒に暮らしていなければならないいくつかの奇妙なものが得られることに注意してください。

ファンクションキーの場合、このようなものは動作するはずです:

nnoremap <ESC><F9> :ls<CR> 
+0

私はこれが私の質問に対する答えではないことを肯定しています。 –

+0

OK、私が理解しているかどうかを見てみましょう - Alt-F1などのキーを再定義して何らかのアクションを実行したいのですか?もしそうなら、 ':nnoremap :ls 'のようにAlt-F3をマップしてすべてのバッファをリストすることができます。それはあなたが望んでいるかどうかですか? –

+0

私は通常、何らかのアクションを実行するためにnoremap のキーの組み合わせでマップしました。これは、Alt/Metaキーを直接マップするため、GUIモード(gVim)で動作します。しかし、Xterm(non-gui)のvimはメタキーをエスケープシーケンスとして認識します。シーケンスをエスケープするためにSET を設定し、次にそれをマップする必要があります。 –

関連する問題