Como configurar o zsh de forma que Ctrl+ Backspacemate a palavra antes do ponto? Como conseguir isso Ctrl+ Deletemata a palavra após ponto?
Eu uso o urxvt como emulador de terminal.
Como configurar o zsh de forma que Ctrl+ Backspacemate a palavra antes do ponto? Como conseguir isso Ctrl+ Deletemata a palavra após ponto?
Eu uso o urxvt como emulador de terminal.
Respostas:
Vou me concentrar em Ctrl+ Deleteprimeiro.
O comando zsh para excluir uma palavra inteira para a frente é chamado kill-word
. Por padrão, está vinculado a Alt+ D.
O modo de fazer o Ctrl+ Deletedepende também do emulador de terminal que você está usando.
No meu sistema, isso funciona no xterm e no Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
e para urxvt, você deve fazer:
bindkey -M emacs '^[[3^' kill-word
Se isso não funcionar, tente digitar Ctrl+ V Ctrl+ Deletepara ver qual é o valor no seu sistema.
Você pode até adicionar os dois ao seu .zshrc
, ou usar a saída em tput kDC5
vez de codificar a sequência.
Ctrl+ Backspaceparece mais difícil.
No meu sistema, pressionar isso é o mesmo que pressionar apenas Backspace.
Se o seu for o mesmo, acho que sua melhor opção é usar Alt+ Backspaceou Ctrl+ W.
Ctrl + Backspace
não funciona
^[[3^
do urxvt. Ctrl+V
Ctrl+Delete
mostraria isso a você.
'^[[3^' kill-word bindkey
e '^H' backward-kill-word
ao meu .zshrc. Agora funciona!
^H
ou ^?
vou trabalhar Ctrl+Backspace
. De fato, parece que essa ligação não é possível. Alt+Backspace
ou Ctrl+W
podem ser substituições adequadas.
Eu tenho isso no meu .Xresources
:
URxvt.keysym.C-BackSpace: \033[33~
e isso no meu .zshrc
:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
Isso mata cada palavra separada por espaço em branco. Observe que '^ [' é o caractere de escape. Você precisa xrdb -load .Xresources
abrir um terminal e, em seguida, pressionar ^V
seguido de ^BackSpace
.