Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Adobe Acrobat Reader is currently one of the good pdf readers available on Linux platform. xpdf and evince to their job well, but acrobat's display seems to be better.

I am used to vim editor and I want vim editor navigation features (hjkl) on Adobe Reader. How I do that?

I know evince has hjkl.

share|improve this question
    
Did not know about superuser.com. I just moved the question over there. I shall let here, just in care it is of interest to somebody. –  Senthil Kumaran Sep 14 '09 at 11:16
add comment

5 Answers

As far as I know, this isn't possible. There is a project under way to create a pdf viewer that has a vim-like interface, but although the development seems to be quite active, it has a way to go yet. If that's of any interest, you can find it here (versions are available for Linux and Windows, although the development is focused on Windows):

http://code.google.com/p/apvlv/

Otherwise, I think you're stuck with evince or using the cursor keys.

share|improve this answer
add comment

Sounds like a job for IronAHK!

k::send {up}
j::send {down}
l::send {right}
h::send {left}

I know basic hotkey functionality like this works, but some of the more complex commands are not yet supported with IronAHK.

share|improve this answer
    
Is k::Up syntax not supported? –  Phoshi Nov 28 '09 at 11:06
add comment

I have set vim like navigation in Adobe Reader using AutoHotKey. You need to configure key mapping to be active only when Adobe Reader is the current active window so that this key binding does not affect other applications. The following modified AutoHotKey.ahk script does that

#IfWinActive ahk_class AcrobatSDIWindow
h::Send {Left}
Return

#IfWinActive ahk_class AcrobatSDIWindow
j::Send {Down}
Return

#IfWinActive ahk_class AcrobatSDIWindow
k::Send {Up}
Return

#IfWinActive ahk_class AcrobatSDIWindow
l::Send {Right}
Return

The ahk_class name can be determined by running AutoIt3 Window Spy.

The only drawback is during Search/Find operation in Adobe Reader. If your search text contains h/j/k/l it will be interpreted as arrow keys. You can overcome this limitation by suspending the autokey or by clicking Pause Script from the taskbar notification area.

share|improve this answer
add comment

Meh, this question is one year old, I'll give it a try nevertheless.

Slightly off topic, because I don't know how to do it in acroread, but you might want to try Apvlv:

"Apvlv is a PDF/DJVU/UMD Viewer Under Linux/WIN32 and its behaviour [is] like Vim."

If you're willing to leave acroread, this pdf-reader will give you lots of vim-love.

Apvlv is based on libpoppler (same back-end as evince and now also xpdf), so you might encounter the same display issues that you mentioned. But it certainly fires up more quickly than acroread, which is the slowest in the industry! Good luck.

Disclaimer: I once wrote a piece of documentation for this project.

share|improve this answer
add comment

This AutoHotKey script I wrote supports hjkl, gg, G, C-e, C-y, C-f, and C-b, along with /, n, and N for searching. Pressing / takes you into search mode, and Esc, Enter, and Ctrl-[ will put you back in normal mode. If things aren't working like they should, try pressing Escape to get back into normal mode.

#IfWinActive ahk_class AcrobatSDIWindow
h:: 
if (inAcrobatSearchMode)
  Send h
else Send {Left}
return

j::
if (inAcrobatSearchMode)
  Send j 
else Send {Down}
return

k::
if (inAcrobatSearchMode)
  Send k 
else Send {Up}
return

l::
if (inAcrobatSearchMode)
  Send l 
else Send {Right}
return

n::
if (inAcrobatSearchMode)
  Send n
else Send {F3}{Esc}
return

+n::
if (inAcrobatSearchMode)
  Send N
else Send +{F3}{Esc}
return

+g::
if (inAcrobatSearchMode)
  Send G
else Send {End} 
return

; see http://stackoverflow.com/questions/1794258/detect-a-double-key-press-in-autohotkey

g::
if (inAcrobatSearchMode)
  Send g
else {
  if (A_PriorHotkey <> "g" or A_TimeSincePriorHotkey > 400) {
      ; Too much time between presses, so this isn't a double-press.
      KeyWait, g
      return
  }
  Send {Home}
}
return

/::
if (inAcrobatSearchMode)
  Send /
else {
  inAcrobatSearchMode := true
  Send ^f
}
return

Esc::
inAcrobatSearchMode := false
Send {Esc}
return

^[::
inAcrobatSearchMode := false
Send {Esc}
return

Enter::
if (inAcrobatSearchMode) {
  inAcrobatSearchMode := false
}
Send {Enter}
return

;go back into normal mode after scrolling with any control command

^e::
inAcrobatSearchMode := false
Send {Esc}{Down}
return

^y::
inAcrobatSearchMode := false
Send {Esc}{Up}
return

^f::
inAcrobatSearchMode := false
Send {Esc}{PgDn}
return

^b::
inAcrobatSearchMode := false
Send {Esc}{PgUp}
return

#IfWinActive

Here's a Gist

Please leave short bug reports or suggestions in the comments!

There are some known issues with holding down the Ctrl movement commands for long periods that have to do with AutoHotKey not being able to translate the input fast enough, but the non Ctrl movement commands shouldn't have this problem.

Unfortunately, I don't know enough about Linux or Mac OS X to be able to provide solutions for them as well. If anyone manages to port this to other operating systems, please either add your own answer or suggest an edit to this one with instructions. :)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.