Mousing and Page-Up/Down in Terminal for Mac OS X

Compared to *nix, Terminal.app seems pretty lame. How can I get it to:

  • Send Page-Up/Down to an application, instead of just scrolling the terminal output
  • Mouse around in vim. set mouse=a isn't helping.
  • All of the above while SSH'd into another machine

Solution 1:

  • Open Terminal.app
  • Open the Preferences window (CMD+,)
  • Click the Settings tab
  • Select your current Settings theme, and click on the Keyboard tab
  • Edit (or Add) the entry for Home:
  • Set Action: to send string to shell:
  • Set the string to \001 (or press Ctrl+a)
  • Edit (or Add) the entry for End:
  • Set Action: to send string to shell:
  • Set the string to \005 (or press Ctrl+e)
  • Edit (or Add) the entry for Page Up:
  • Set Action: to send string to shell:
  • Set the string to \033[5~ (copy and paste this in)
  • Edit (or Add) the entry for Page Down
  • Set Action: to send string to shell:
  • Set the string to \033[6~ (copy and paste this in)
  • Close the settings window.

There you go. Terminal should be ready to use the Home, End, Page Up, and Page Down keys as expected by Windows/Linux users.

SSH into your favorite Linux server, open nano, vi, or emacs and enjoy.

If home or end keys don't work in vim try these:

  • Home: \033[7~
  • End: \033[4~

As for the mouse issue, I'm not sure if Termminal.app supports xterm mouse reporting. Supposedly it needs that to work. iTerm is an alternative terminal program that support mouse reporting. MouseTerm is a hack to add mouse reporting to Terminal.app but I've not tried it and don't know how well it works

You can also install X11.

Once you do one of those three things you should be able to use ssh with set mouse=a.

Solution 2:

With regards to Page Up/Down and Home/End, simply hold down the shift key to send those to the application. Otherwise remapping the keys as Kelbizzle described will completely do away with Apple's idea of what's most important to scroll through (i.e. their scrollback).

Solution 3:

Within Terminal mc (midnightcomander) works with Fn+Shift+UpKey and Fn+Shift+DownKey

Solution 4:

Correct key codes:

home key code:

\033[H

end key code:

\033[F

page-up key code:

\033[5~

page-down key code:

\033[6~

Source with screenshots: https://superuser.com/a/33370