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

StackOverflow https://stackoverflow.com/questions/8638012

Вопрос

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?

Это было полезно?

Решение

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.

Другие советы

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.

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.

Setting the TERM variable in .zshrc caused this for me.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top