When editing texts, left and right arrow keys are frequently used. But it takes quite some time to move your right hand from the letters section to the arrow keys.

I used to use a Sony laptop, on which I could press "fn" with my left hand and then press "u" and "o" with my right hand to achieve the functions of "left arrow key" and "right arrow key", so my right hand seldom moved away from "jkl;". Neat.

Is there a similar resort on Mac?


  • Use emacs or vi their arrow keys use ctrl and a letter - and many other editors allow emulation of these – mmmmmm May 15 '14 at 13:23
  • Oh I meant a universal method, not confined to an app, say the textbox where I'm typing right now :] but thanks! – user78236 May 15 '14 at 13:53
  • Emacs motion key bindings are honored in most parts of OS-X. CTL-F/CTL-B move forward/backward one char; CTL-N/CTL-P move vertically to the next/previous line; CTL-A/CTL-E move the the beginning/end of the current line; CTL-D deletes to the right. – JRobert Aug 10 '16 at 16:41

10 Answers 10


You can use BetterTouchTool http://www.boastr.de to globally assign keyboard shortcuts. However You can't assign fn key.

enter image description here

  • Wow! This app is awesome! I assigned cmd+j and cmd+k for left and right arrow keys, so cursor navigation is now faster! Thanks a lot Mateusz :] – user78236 May 15 '14 at 17:58
  • It is pity that fn key cannot be used, so does my PHPStorm. It makes fn even more useless. – bijiDango Aug 15 '19 at 8:57

You can use this :

  • ctrl+A: beginning of line.

  • ctrl+E: end of line.

  • ctrl+U: delete from cursor to beginning of line.

  • ctrl+K: delete from cursor to end of line.

  • ctrl+W: erase word to the left.

  • ctrl+T: transpose characters around cursor.

  • Not all apps support these e.g. Firefox - I agree that any good app written to Apple's interface guide should – mmmmmm May 15 '14 at 13:58
  • 1
    @Mark it works with cocoa applications – Thomas Ayoub May 15 '14 at 13:59
  • And most shells. – bot47 May 15 '14 at 15:33
  • In cocoa Alt-Left, Alt-Right, Apple-Left, Apple-Right also does useful actions. But yes, this all is no about OPs question at all – bot47 May 15 '14 at 15:35

Many OS X text views support a few Emacs style shortcuts like:

  • control-p moves up
  • control-n moves down
  • control-b moves left
  • control-f moves right

To see a full list of the shortcuts, run plutil -convert xml1 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict -o -|pl|grep -v noop:|ruby -pe '$_.gsub!(/[^ -~\n]/){"\\U%04x"%$&.ord}'.

You can use KeyRemap4MacBook to make the Emacs style shortcuts work in more places:

<?xml version="1.0"?>
    <autogen>__KeyToKey__ KeyCode::P, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
    <autogen>__KeyToKey__ KeyCode::N, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
    <autogen>__KeyToKey__ KeyCode::B, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::F, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
    <autogen>__KeyToKey__ KeyCode::P, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::N, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::B, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::F, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::B, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION</autogen>
    <autogen>__KeyToKey__ KeyCode::F, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION</autogen>
    <autogen>__KeyToKey__ KeyCode::B, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION | VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::F, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION | VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::I, VK_CONTROL | ModifierFlag::NONE, KeyCode::TAB</autogen>
    <autogen>__KeyToKey__ KeyCode::D, VK_OPTION | ModifierFlag::NONE, KeyCode::FORWARD_DELETE, VK_OPTION</autogen>

This would map fn-U to the left arrow key:

<autogen>__KeyToKey__ KeyCode::U, ModifierFlag::FN, KeyCode::CURSOR_LEFT</autogen>

See https://pqrs.org/macosx/keyremap4macbook/xml.html.en or http://osxnotes.net/keyremap4macbook.html for more information.


ctrl+B and ctrl+F are the same as left and right arrow in cocoa apps.


Thanks to Samuel I was able to map i,j,k,l to up,left,down and right using AutoHotKey. I would like to mention that this method is for those who are using windows. In my case its working perfectly find with windows 10.

Code on AutoHotKey

j::Send {Left} i::Send {Up} k::Send {Down} l::Send {Right}


You can map menu entries to keyboard shortcuts.

So if your favourite editor has something prepared, then you can do this.

Go to System Preferences > Keyboard > Shortcuts, and add go to the entry App Shortcuts.

So i think it depends on your favourite editor. When you can jump there from word to word, its even cooler then to just move the cursor.

I can recommend Sublime Text 2/3 for this.

  • 2
    Thanks! But what I meant was a universal key combination which can achieve exactly the function of arrow keys, say "fn+u" does what "left arrow" does, and "fn+o", right arrow. That'd be cool:) – user78236 May 15 '14 at 14:05
  • I know, but so far this is the closest you can get. – ohboy21 May 15 '14 at 14:12

I use KeyRemap4MacBook on my unibody mid-2010 MacBook, which I think was the first series built after they stopped including the numpad mode. The site says the software works for all Macs, so you could probably use it to create a mapping that works for you.

  • Didn't try this, but thanks! I'm using BetterTouchTool recommended by @mateusz, which is very good :] – user78236 May 15 '14 at 18:01

You could use a text editor that supports vi mode.

vi is a unix text editor that is controlled without a mouse and therefore has very capable keyboard shortcuts, not just to move around whithin a text, but also to quickly edit text.

Many modern text editors that are geared towards programmers have implemented a "vi mode," which means you can turn on all those powerful shortcuts. I learned how to use vi mode when programming, but I have come to absolutely love it in any kind of text editing. It takes quite a while to really be comfortable with all of the shortcuts, but once you are, your productivity skyrockets!

Here are just a few of the powerful keyboard shortcuts that vi mode provides:

  • jump to the end/beginning of a word
  • jump to the en/beginning of a line
  • jump to a certain character
  • delete the current word
  • go to the beginning/end of the document

My favorite editor that has vi mode is Sublime Text 3. You can evaluate the full version for as long as you like. To enable vi mode follow this link: enabling vi mode

Here are a couple of interactive tutorials that teach you vi shortcuts:


I use AutoHotKey to remap the keys.

I use the Capslock key which in other cases is a totally lost of space on a keyboard except for people who still write everything in upper case.

Now, Capslock is just at a couple of millimiters of my left pinkie with the combination of a couple of other keys to do some useful functions like remapping the arrow keys with j,i,k and l.

The only downside for me of this method is that each time that you press the Capslock key to do some shortcuts, the led of the keyboard goes on and off. If I find a solution to deactivate this led, I will let you know. Since last week, I have the Cooler Master NovaTouch TKL and there is not led at all. Therefore, I will postpone this visual problem. :)

Here is the part of the script to do this replacement:

Capslock & j::Send {Left}
Capslock & i::Send {Up}
Capslock & k::Send {Down}
Capslock & l::Send {Right}

The arrow keys are too far away from the home keys. What you need is to be able to use a standard arrow key configuration, but without moving your hands away from the home position.

I strongly recommend using a key remapping layer, such as this "Extend Layer":


By holding down a special "Extend" key (which you can define as as either Left Alt or Caps Lock), it then makes your arrow keys I,J,K,L, which is in the familiar arrow key pattern. As a bonus, you also get Home/End/PgUp/PgDn as well on nearby keys as well.

Because the pattern of keys is familiar, it is very fast to learn. The remapping takes effect at the OS level, so you can use these fast, convenient arrow keys across all applications.

I use this system and find I rarely need to move my hands from the home position.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .