Ctrl + F8をいくつかの方法でマッピングしようとしましたが、うまくいきませんでした。調べてみると、vimはすべてのターミナルキーコードをサポートしていないため、ターミナルキーコードを空のvimキーコード(F13など)に割り当てる必要があることがわかりました。これ成功せずにステップバイステップでガイドします。
私がやったことは次のとおりです:
- catを使用してCtrl + F8のターミナル(URxvt)キーコードを見つけます。結果は次のようになります: ^[[19^
- プラグイン ファイルに次の行を追加しました:
set <F13>=^[[1;2B nnoremap <F13> :call foobar
助言がありますか?
答え1
[テスト後、コメントを回答に転送しました。]
コマンドset
はスキャンコードと同じ値を使用していません。また、^
との 2 つの文字の代わりにエスケープ文字を使用していることを確認する必要があります[
。エスケープ文字を「ハードコーディング」せずにこれを簡単にするには、 を使用します:execute
。
:exe "set <F13>=\e[19^"
:nnoremap <F13> :echo "It works!"<CR>