2011-01-16 8 views
2

私はFreeBSDでVim 7.3を使用しています。私はパテを介してこのマシンに接続します。 Vimで作業しているとき、私は何かをするためにF10のキーを再マッピングすることができません。私の.vimrcで、私は次のようでした:Vim remap F10キー

nmap <F10> :!ls<CR> 

をそれから私はの.vimrcの変更をロードするために、「ソースの$ MYVIMRC」をやりました。この後にF10を押すと、地図を実行する代わりに^ [[21〜]が表示されます。私はnoremapのすべての組み合わせを試しましたが、何も動作しません。

これを他のファンクションキーに再マッピングすることは、他の用途のためにマップされているため、オプションではありません。

ちょうど、Puttyの設定オプションのTerminal-> Keyboardで、 "Function keys and keypad"オプションを "Linux"に設定しました。

これを機能させるための提案はありますか?

答えて

3

あなたのtermcap/terminfoのように聞こえますが、使用している$TERMという値は、端末がF10としてF10として送信している文字シーケンスをVimが認識しないようにしています。

簡単な回避策は、文字シーケンスをマップすることです。あなたの.vimrcでは、次のように入力します。

<CTRL-V><F10>はF10に続くCTRL-Vを押している
nmap <CTRL-V><F10> :!ls<CR> 

。これにより、バッファには^[[21~が表示されます。それは大丈夫ですが、このマッピングは(少なくともその端末で)うまくいくはずです。

"正しい"修正は、$TERM、termcapまたはterminfoデータベースの値を変更して、Vimが^[[21~がF10であることを知るようにすることです。 $TERMからxtermに設定しても問題ありません。

+0

'$ TERM'を' xterm'に設定するのが魅力的です。 Laurenceに感謝します。 –

関連する問題