In Windows and Linux I could always hit ctrl+← or ctrl+→ to skip a word to the left or right in the terminal. In text editors it seems that ⌥+←/→ works, but no dice in the terminal. I've searched Google and found nothing except a Wikipedia page that claims ⌥+B/F does the job, but all it does is print ∫ and ƒ characters to my terminal (or ı and Ï if I hold ⇧). Any ideas?

if you know how to use vi you can also turn on vi line editing mode using set -o vi in your .bash_profile or at any time on the command line. Then you can switch between vi command and insert modes. So you could hit escape, then use the vi commands for navigating the line:

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

Once you get to the correct position, you can use the other vi commands to enter insert or append modes, or remove characters one by one, etc.

I never knew you could use 0 for start of line, I always used ^
–
Jason SalazJan 3 '11 at 16:47

1

@vxjasonxv: ya, ^ moves to the first non-whitespace char, 0 moves to the first column (which you probably already noticed but I figured I'd throw it out there for others :P)
–
Robert S CiaccioJan 3 '11 at 20:36

Esc is never a modifier, it's just going into "Escape" mode when you press it, consider it a modal way of doing things, unlike shift/ctrl/meta etc. (in the Readline scheme of things anyway.)
–
SlomojoJan 29 '11 at 9:40

Note the first two apply to bash in Terminal; the last two apply to bash in iTerm2 and incoming ssh connections. Don't ask me why the keyboard emulation is different ;)

For the record, I was able to find what the keycodes actually were thanks to a hint from this stackoverflow answer: You can run cat > /dev/null to monitor the exact keycodes sent during a key combination.

(Note that for me, when I run cat > /dev/null and press ctrl+&leftarrow; it produces ^[[1;5D. Your exact keycode may differ, but the first ^[ is represented as \e, as shown in my example code.)

Open terminal, go to preferences, keyboard. On the list you'll find “ctrl cursor right” and “ctrl cursor left”.
Change their assigned actions to “\033f” and “\033b” respectively, and you'll be able to use ctrl+→ and ctrl+← to move, without losing your alt key.