3

I want to have my external keyboard's HOME, END, PAGEDOWN and PAGEUP working on Leopard's Terminal. So that I changed in Terminal > File > Preferences:

Home: \033[H  
End: \033[F  
PageUp: \033[5~  
PageDown: \033[6~  

It works 100% in command line - but it doesn't work while editing files in VIM.
Is there any possibility of remapping VIM keyboard in order to have these keys working?

Regards

Cadoiz
  • 135
  • 5
jbastos
  • 265
  • 1
  • 3
  • 9

3 Answers3

3

If, according to the question, you already know the mappings, then it's easy..

Home: \033[H  
End: \033[F  
PageUp: \033[5~  
PageDown: \033[6~

Just edit ~/.vimrc and add:

map <Esc>[H <Home>
imap <Esc>[H <Home>
map <Esc>[F <End>
imap <Esc>[F <End>
map <Esc>[5~ <PageUp>
imap <Esc>[5~ <PageUp>
map <Esc>[6~ <PageDown>
imap <Esc>[6~ <PageDown>
jbastos
  • 265
  • 1
  • 3
  • 9
1

Try

:imap <C-k><Home> <Home>
:map <C-k><Home> <Home>

-- actually hitting control-k and your home key for both, to enter what vim reads from your home key, then typing the second <Home>. And so on for the other bindings. See :help :map and :help <>.

ayrnieu
  • 211
  • 1
  • 2
1

I have permanently solved it.

In my case, I have mapped it in vim:

:imap <C-v><Home> <Home>
:map <C-v><Home> <Home>

-- actually hitting control-v and your home key for both, to enter what vim reads from my home key, then typing the second .

It works, but it lasts only for the current session.
So, I just type the following command, followed by <Enter>

:map 

Then I get the mappings

<Esc>[H <Home>

Now, I just add it to my ~/.vimrc file:

map <Esc>[H <Home>
imap <Esc>[H <Home>

now it is remapped to all vim sessions of my user.

jbastos
  • 265
  • 1
  • 3
  • 9