Você terá que viver sem ctrl S porque este é o comando terminal para parar a saída ( ctrl Q desfaz isso.
Outras teclas de função devem ser mapeáveis sem nenhum problema, apenas digite :map
, então pressione a tecla de função que você deseja mapear que deve mostrar por exemplo <F5>
para F5, então espaço, então o que você deseja mapear .
Você pode colocar essa linha (sem os dois pontos iniciais) em seu arquivo ~/.vimrc
para ativar o mapeamento para cada sessão vim.
Se você já tentou isso, edite sua pergunta para mostrar exatamente o que você tentou e qual foi o resultado (e como isso diferiu de suas expectativas).
EDITAR: Se você deseja mapear sequências que não estão definidas na definição do terminal, você pode mapear manualmente a sequência.
Primeiro, você precisa descobrir quais bytes / caracteres ele enviou ao pressionar, e. ctrl deslocamento F2 . Eu sempre uso od -c
para isso; inicie o comando, pressione a seqüência de teclas, tecle ctrl d para enviar um fim-de-arquivo para o comando, que então imprime a versão decodificada:
$ od -c
^[[24^
0000000 033 [ 2 4 ^ \n
0000006
Então isso é escape, [ 2, 4, ^ (a nova linha é o que eu digitei após a sequência e deveria ser ignorada; você também pode pressionar ctrl d duas vezes, mas depois a saída é iniciada após a entrada e parece confusa).
Agora sabemos a sequência e podemos adicionar o mapeamento a .vimrc
. Adicione uma linha como a seguinte:
map <C-[>[24^ :whateveryouwant
A sequência <C-[>
é a representação vim do escape, que é o mesmo que ctrl [. Depois disso, os personagens não são especiais, então eles podem ser inseridos como estão.
Agora ctrl deslocamento F2 será mapeado para o lado direito que você digitou quando você inicia o vim.