Mac OS X Terminal: Map option+delete to "backward delete word"

Solution 1:

Enable option key as meta key

  1. Go to Terminal > Preferences > Profiles > Keyboard
  2. Check Use option key as meta key.

Image

On macOS High Sierra 10.13.6, captured on October 23, 2018.

Illustration of the window for toggling option key as meta key

Notes

Many applications (including bash and tcsh) treat Meta-Delete as "backward delete word."

Solution 2:

OS X's terminal runs bash, which includes readline support. Follow Glomek's advice and tell terminal to use option as meta key (or else use Esc) and then you've got a bunch of handy options: Ctrl+w deletes prev word (as does Meta+delete as mentioned), but you can also use Meta+f and Meta+b to walk forward and backwards thru words, Ctrl+a and Ctrl+e to beginning and end of line, Ctrl+k delete (kill) from cursor to end of line, and a bunch more.

See http://www.bigsmoke.us/readline/shortcuts for a nice little reference table.

Solution 3:

Delete a word going back:

Ctr-w.

Solution 4:

⌃W (control+W) is not the same thing than meta + delete (ESC+delete if you don't have checked use option as meta key) meta+delete will treat / _ as word delimiter where ^W will consider space as delimiter.

e.g. using ESC+Bakcspace on (cursor at the end)

rm /dira/dirb/file1

gives

rm /dira/dirb/

while ^W on the same will give

rm

So it is better to use \033\177 rather than ^W when defining the modifying the terminal profile. That way you are really mapping ⌥⌫ to what esc⌫ is doing and you keep having ^W to erase word based on space delimiter.

I would love to be able to post an image on how do this but as a newbies I can't.

refer to bouke comment to see how to modify terminal profile.

Solution 5:

By default meta backspace does a backwards word yank in most shells. If you press escape and then press backspace, that pretty much works everywhere.