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

macmacossshterminal.appvim

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

Best Answer

OMG facepalms apple still hasn't taken care of this. I would get calls from Tier 1 noobs all day when I worked at apple.

  • 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.