Fix key settings (Home/End/Insert/Delete) in .zshrc when running Zsh in Terminator Terminal Emulator
Asked Answered
J

3

88

I'm running Ubuntu 11.04. I installed the Terminator Terminal Emulator 0.95, and Zsh, version 4.3.15.
I have (commonly known) problems with my keys inside the Zsh. At least these:

  • Home/End, nothing happens
  • Insert/Delete/PageUp/PageDown: a "~" is typed

I already tried some configurations for .zshrc which should solve the problem, but no approach really worked so far. Maybe this is related to the combination of Terminator and Zsh. I took the 2 configs on this page: https://bbs.archlinux.org/viewtopic.php?pid=428669.

Does oneone have a similar configuration (especially Terminator and Zsh) and figured out what needs to be inserted into the .zshrc to fix the key settings?

Jadotville answered 26/12, 2011 at 18:1 Comment(0)
D
219

To know the code of a key, execute cat, press enter, press the key, then Ctrl+C.

For me, Home sends ^[[H and End ^[[F, so i can put i my .zshrc in my home dir

bindkey  "^[[H"   beginning-of-line
bindkey  "^[[F"   end-of-line
bindkey  "^[[3~"  delete-char

These codes could change with the terminal emulator you use.

autoload zkbd ; zkbd will create a file with an array of keycodes to use, like bindkey "${key[Home]}" beginning-of-line, and you can source a different file depending on the terminal.

Dimpledimwit answered 27/12, 2011 at 13:39 Comment(7)
The cat thing did not work for me, but this blog post over here shows od -cwhich did the trick for meDhobi
read works like cat for this. Just remember that ^[ is escape code, \e in .inputrc.Vladi
I use '^V' followed by desired keystroke. Seems to work anywhere.Masse
A list of available widgets such as beginning-of-line is available here. For instance, delete-char is the widget normally associated with the delete key.Jibber
Have been trying to fix this for an hour and realized that other sollutions didn't work because my keyboard is set to swedish. Your cat trick fixed that, thanks!Chopper
How would one switch out the different keyfiles created by zkbd for different shells, eg. ssh'ing into a box from terminator vs running zsh directly on the machine vs using PuTTY yields different keycodesBramlett
Coming from windows to mac has been so painful and mapping these keys in zshrc worked first shot. Just remember to source ~/.zshrc and then get workingRhody
M
42

Thanks to @lolesque, but the solution doesn't work with me. After using zkbd to check my key binding, I came out the below solution. BTW, my $TERM is xterm.

bindkey  "^[[1~"   beginning-of-line
bindkey  "^[[4~"   end-of-line

Hope it helps.

Mesial answered 10/10, 2015 at 2:4 Comment(3)
This works for me when I am ssh'ed to zsh via hyper.js on windowsConlon
if you read the answer you'll see that he provided the complete solution with cat command. And my keys is same as yours. Thank you.Pagano
I found that I have lolesque's bindings in xterm, but yours inside tmuxShepherd
A
4

For me on WSL2 (Windows 10) this was it

bindkey "^[OH" beginning-of-line
bindkey "^[OF" end-of-line

The cat trick did not work for me as it printed ^[[H as in the accepted answer but I was able to find out the ^[OH sequence by typing Ctrl+v Home in the new Window Terminal running zsh.

Alita answered 13/12, 2019 at 17:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.