1 votes

ZSH sauter à la fin des mots

J'ai réussi à personnaliser mon zsh pour gérer le droit WORDCHARS Je le veux. Cependant, lors du saut, de la suppression ou de l'autocomplétion de mots, il saute au début de chaque mot, je préférerais qu'il saute plutôt à la fin des mots.

Par exemple, dans la commande suivante, lorsque l'on saute à l'aide de backward-word y forward-word le curseur se déplace vers les positions marquées par le symbole ^ personnages ci-dessous :

$ kubectl --context stage --namespace kube-system get pods
  ^         ^       ^       ^         ^    ^      ^   ^   ^

Je préférerais de loin que zsh saute à la fin des mots à la place, comme ceci :

$ kubectl --context stage --namespace kube-system get pods
  ^      ^         ^     ^           ^           ^   ^    ^

Est-il possible de le configurer ?

1voto

Marlon Richert Points 1441

Voilà :

# Replace `forward-word` with `emacs-forward-word`. Problem solved.
zle -A emacs-forward-word forward-word

# For `backward-word`, it's a bit more completed. Let's replace it with a 
# new function.
zle -N backward-word backward-word-end
backward-word-end() {
  # Move to the beginning of the current word.
  zle .backward-word

  # If we're at the beginning of the buffer, we don't need to do anything
  # else.
  if (( CURSOR > 0 )); then
    # Otherwise, move to the end of the word before the current one.
    zle .backward-word
    zle .emacs-forward-word
  fi
}

Pour cette version de backward-word Dans certains cas, si le curseur est positionné à droite d'un grand nombre de caractères non verbaux, il peut sembler intuitivement qu'il saute un peu trop loin. Mais pour le cas de test que vous avez présenté ci-dessus, cela fonctionne parfaitement.


Mise à jour

J'ai maintenant packagé ce qui précède, plus des options de personnalisation pour le mouvement des mots, sous forme de plugin : https://github.com/marlonrichert/zsh-edit#better-backwardforward-kill-word-widgets-with-subword-matching

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X