End do nothing in iTerm2, nor do ⌘← and ⌘→.
A and Ctrl-
E do work.
End do this?
Preferences->Keys_Key Bindings in iTerm2 do not offer a "Start of Line" or "End of Line option.
Ask Different is a question and answer site for power users of Apple hardware and software. It only takes a minute to sign up.Sign up to join this community
^ ControlA and ^ ControlE are keybinding in Bash and ZSH, not in iTerm (or Terminal).
If you want custom bindings within iTerm, you will need to bind the actual keyboard sequence in the keybinding. "Start of Line" and "End of Line" are descriptors, not the actual key strokes.
So, to do this you'd need to send ^ ControlA for Home via their Hex Codes. In this case, the codes would be
0x01 for "start of text" (^A) and
0x05 for "ENQ" (^E).
In the image below, you can add a new binding in Preferences → Keys → Key Bindings
+to add a new binding
The accepted solution proposed by Allan is not optimal, as this keybinding affects *ALL* applications that are executed on the terminal and this key remapping would mean that some applications won't work as expected:
For example, if you use 'vi' then the keys 'Home' and 'End' no longer work after this key binding (those keys work ok if you don't do the proposed key binding)
A better solution is to do the key mapping on the shell itself:
In zsh (the default shell being used by macos nowadays), just add this in ~/.zshrc:
bindkey '\e[H' beginning-of-line bindkey '\e[F' end-of-line
and Home and End keys will work ok in both the command line and vi
I had a similar problem, except in my case home/end was moving me to the beginning/end of the scroll buffer, not to the beginning/end of the line in the shell. The 'bindkey' solution above did not work, but I found that when I disable "Page up, page down, home and end scroll outside interactive apps" in profile's "Keys" tab, it starts to work as I expect it to.