回答:
挿入モードで+ 、+ arrowをCtrl入力して、端末が+ arrow に対して送信するエスケープシーケンスを正確に把握します。これにより、先頭の文字(vimで表示)がそのまま挿入され、残りのエスケープシーケンスが続きます。次に、これらのエスケープシーケンスについてvimに次のように伝えます。CtrlVCtrlESC
^[
map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>
Puttyには不都合なApplication Cursor Keysモードのデフォルト設定があることを思い出すようです(理由を忘れます)。最初にこの設定を切り替えることをお勧めします。
エスケープシーケンスは端末によって異なりますが、競合(つまり、異なる端末の異なるキーに対応するエスケープシーケンス)はまれなので、特定の端末タイプにのみマッピングを適用する必要はありません。
od -a
たりod -c
、8進数を調べて問題のキーを入力したりすることもできます。例については、私の回答の「追加」を参照してください。
最善の策は、おそらくPuTTYのアプリケーションカーソルキーモードの構成を確認することです。
デフォルトのシーケンスESCはプレフィックスとして送信され、[
その後にA
追加またはハングC
またはその他の操作が挿入モードになります。
^ Vエスケープのもう少し明示的なバージョンは、od(1)で見ることができます。ここでは、私の端末で^ Up、^ Down、^ Right、^ Leftと入力しています。
$ od -a
0000000 esc [ 1 ; 5 A esc [ 1 ; 5 B esc [ 1 ;
0000020 5 C esc [ 1 ; 5 D
したがって、+ ^[[1;5A
を押すと端末が送信しますCtrl↑
ここでより良い解決策を見つけました:http : //vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell
この文字列を.vimrc
ファイルに入れるだけです:
:set term=cons25
更新
このファイルをにコピーし/home
、名前を変更します.vimrc
。
/usr/share/vim/vim_VERSION_/vimrc_example.vim
これと他のvimキーボードの問題のために私は単に
vim ~/.vimrc
set nocompatible