Vim/Emacs keybinding for `Preview.app`
As @tty suggested, using Karabiner is brilliant. I made some extra rules. 

You can navigate using HJKL and zoom using FDER. Read the file for more information.

Here is my private.xml:

&lt;?xml version="1.0"?&gt;
&lt;root&gt;
  &lt;appdef&gt;
    &lt;appname&gt;PREVIEW&lt;/appname&gt;
    &lt;equal&gt;com.apple.Preview&lt;/equal&gt;
  &lt;/appdef&gt;

  &lt;item&gt;
    &lt;name&gt;Vi Navigation in Preview&lt;/name&gt;
    &lt;identifier&gt;private.preview.vinav&lt;/identifier&gt;
    &lt;only&gt;PREVIEW&lt;/only&gt;
    &lt;uielementrole_not&gt;AXTextField, AXTextArea&lt;/uielementrole_not&gt;
    &lt;modifier_only&gt;
        ModifierFlag::NONE,
        ModifierFlag::SHIFT_L | ModifierFlag::NONE,
        ModifierFlag::SHIFT_R | ModifierFlag::NONE,
    &lt;/modifier_only&gt;
    &lt;appendix&gt;Navigate using the HJKL keys&lt;/appendix&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::J, KeyCode::CURSOR_DOWN&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::K, KeyCode::CURSOR_UP&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::H, KeyCode::CURSOR_LEFT&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::L, KeyCode::CURSOR_RIGHT&lt;/autogen&gt;
  &lt;/item&gt;

  &lt;item&gt;
    &lt;name&gt;Vi Zoom in Preview&lt;/name&gt;
    &lt;identifier&gt;private.preview.vizoom&lt;/identifier&gt;
    &lt;only&gt;PREVIEW&lt;/only&gt;
    &lt;uielementrole_not&gt;AXTextField, AXTextArea&lt;/uielementrole_not&gt;
    &lt;modifier_only&gt;
        ModifierFlag::NONE,
        ModifierFlag::SHIFT_L | ModifierFlag::NONE,
        ModifierFlag::SHIFT_R | ModifierFlag::NONE,
    &lt;/modifier_only&gt;
    &lt;appendix&gt;Zoom using E/R: out/in&lt;/appendix&gt;
    &lt;appendix&gt;Zoom to fit: F&lt;/appendix&gt;
    &lt;appendix&gt;Zoom to 100%: D&lt;/appendix&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::F, KeyCode::KEYPAD_9, VK_COMMAND&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::D, KeyCode::KEYPAD_0, VK_COMMAND&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::R, KeyCode::KEYPAD_PLUS, VK_COMMAND&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::E, KeyCode::KEYPAD_MINUS, VK_COMMAND&lt;/autogen&gt;
  &lt;/item&gt;
&lt;/root&gt;