# How can I achieve page-up and page-down in OS X?

I am using MacOSX Snow Leopard.

How do I achieve page-up and page-down?

If you have a full keyboard you can use the pgup and pgdown keys on your keyboard, near the numpad.

If you are not using a full keyboard, function, labeled fn on your keyboard, plus the up and down arrow keys will give you a page up and down.

For certain applications, particularly in shell / terminal / tty windows, the expected behaviour is achieved with fn+shift+arrow up/down

• -1 actually FN+Up/Down is not the same as FN+PageUp/PageDown. For example, the traditional PageUp/PageDown does not work in irssi. – hhh Mar 19 '13 at 8:53
• @hhh: It seems that irssi and some other terminal apps use Shift+PgUp/PgDn, so the key combination on a MBP would be Shift+Fn+PgUp/PgDn. – Lèse majesté Jan 28 '14 at 2:02
• This is for the hardware mapping of these functions. OSX applications don't generally use these keys in the way most of us expect. ctrl+a and ctrl+e (home & end) are an option. My post below explains how to get the functionality you expect for the Terminal application. Each app handles these keys according to it's own settings. Strange. – James T Snell Jul 17 '14 at 18:05
• This has not been my experience. I have the full size Apple Keyboard hooked up to my Mac Pro and these keys only work as expected outside of OSX. My post below shows how to alter Terminal so it'll work normally. But it was also helpful when I learned that in general OSX has CTRL+A as HOME and CTRL+E as END – James T Snell Dec 22 '14 at 16:21

It's true that the hardware keyboard on Macintosh machines has:

Fn + = Home
Fn + = End
Fn + = Pg up
Fn + = Pg down

So these "keys" fully exist already. This is apparent if you run Linux/Windows natively on your Mac.

However, macOS applications are responsible for handling these functions as they see fit, which is not something most of us expect. And the macOS Terminal application needs some tweaking to use them as we all expect.

I believe the reason for this is that macOS follows an old-school Unix tradition where:

ctrl + a = Home
ctrl + e = End

I now use this routinely, but my terminal-reflexes still demand a proper home,end,pg-up,pg-down...

Edit macOS's Terminal Keyboard Binding Settings to match

I tend to get this entered by copying a similar entry that already exists, then using the 'delete a character' button, I remove the different bits before typing in the rest.

Overall, this will look along these lines:

This meets all my expectations for how this should work. It works in vim and through ssh.

• I think it's really funny which answer has been accepted for this question. I guess different strokes for different folks? – James T Snell May 20 '15 at 0:41

On my (Danish) keyboard layout (under 10.7.5) it is fn + shift + /.

• I have an US English keyboard and this is what works for me under terminal if I'm SSHed. – Tyler Collier May 11 '13 at 4:55
• It works for me in the terminal regardless of whether I'm SSHed. – Tommy Mar 12 '14 at 11:17
• This works for shells in VirtualBox with U.S. Extended keyboard layout (under 10.10.5) – Marius Sep 10 '15 at 17:13

It's + Up/Down arrow keys.

• This doesnt work for me? What am I doing wrong? – ConstantineK Oct 7 '11 at 23:34
• @hobs not sure, but I'm actually on Lion, works either way for me, with fn and ⌥ – Artem Pakk Oct 8 '11 at 21:00
• Same here, Macbook 13 inch running 10.7, I will look into it. – ConstantineK Oct 9 '11 at 13:03
• On OS X 10.6.8 I get about a 3-line scroll w/ opt+arrow versus actual PgUp PgDn behavior with the fn+arrow. – sholsinger Oct 13 '11 at 18:57

If you use KeyRemap4Macbook app, check under "Change Arrrow Up/Down/Left/Right" keys.

When you have this set up, Page Up and Page Down will work with irrsi – I log-on remotely to another linux host for that – you only need to press Shift + Page Up or Page Down will work for that window (as opposed to scrolling pages of OS X terminal window).

PageUp: Fn+UP

PageDown: Fn+DOWN

Successfully tested on my brand new MBPro retina !

user Fn

PageUp: Fn+UP PageDown: Fn+DOWN

Alt + up/down arrows: pgup/pgdown

Spacebar and shift + spacebar: : pgup/pgdown

Command + up/down arrows: home/end