vim で Ctrl + F8 をマップするにはどうすればいいですか?

vim で Ctrl + F8 をマップするにはどうすればいいですか?

Ctrl + F8をいくつかの方法でマッピングしようとしましたが、うまくいきませんでした。調べてみると、vimはすべてのターミナルキーコードをサポートしていないため、ターミナルキーコードを空のvimキーコード(F13など)に割り当てる必要があることがわかりました。これ成功せずにステップバイステップでガイドします。

私がやったことは次のとおりです:

  1. catを使用してCtrl + F8のターミナル(URxvt)キーコードを見つけます。結果は次のようになります: ^[[19^
  2. プラグイン ファイルに次の行を追加しました:

set <F13>=^[[1;2B nnoremap <F13> :call foobar

助言がありますか?

答え1

[テスト後、コメントを回答に転送しました。]

コマンドsetはスキャンコードと同じ値を使用していません。また、^との 2 つの文字の代わりにエスケープ文字を使用していることを確認する必要があります[。エスケープ文字を「ハードコーディング」せずにこれを簡単にするには、 を使用します:execute

:exe "set <F13>=\e[19^"
:nnoremap <F13> :echo "It works!"<CR>

関連情報