GNU/Linux >> Tutoriels Linux >  >> Linux

Que sont les séparateurs de mots Readline ?

Lorsque je supprime un "mot" dans Bash, il s'arrête à certains caractères comme _ et / . Par exemple, si je tape

/foo/bar

et activez backward-kill-word (généralement mappé sur AltRetour arrière et/ou Ctrlw ), le texte restant est

/foo/

. Cela n'est pas correspondent à $COMP_WORDBREAKS ou readline 's rl_completer_word_break_characters . Comment puis-je détecter (de préférence dans un système en cours d'exécution, plutôt que les valeurs par défaut dans le code, car elles peuvent probablement être remplacées) quels caractères sont utilisés pour déterminer les sauts de mots ?

Réponse acceptée :

La documentation bash indique :

backward-kill-word (M-Rubout)

Tuez le mot derrière le point. Les limites des mots sont les mêmes que celles utilisées par les mots inversés.

Et

backward-word (M-b)

Revenir au début du mot actuel ou précédent. Les mots sont composés de caractères alphanumériques (lettres et chiffres).

La gestion de backward-word dans Bash 4.2 se fait dans le code libreadline fourni (text.c:rl_backward_word ). Le saut de mot est basé sur rl_alphabetic , qui lui-même repose sur le isalnum une fonction. Cela dépend des paramètres régionaux, mais n'est pas configurable directement dans bash.

Notez que Bash 4.0 a introduit un autre type de "mot" avec le shell-forward-word et shell-backward-word actions (et kill équivalents). Ceux-ci cassent uniquement sur les méta-caractères du shell (()<>;&|" ) et des blancs (éventuellement en fonction des paramètres régionaux via isblank ), géré dans le code bash principal (bashline.c ).


Linux
  1. Routeur pfSense vs Netgear :quelles sont les principales différences ?

  2. Fedora vs Ubuntu :quelles sont les principales différences ?

  3. Quels sont les différents types de shells sous Linux ?

  4. Quels sont les types de serveurs DNS

  5. Que sont les codes de sortie Bash sous Linux

Cassandra vs MongoDB - Quelles sont les différences ?

Terraform vs Kubernetes :quelles sont les différences

Qu'est-ce qu'Intel SGX et quels en sont les avantages ?

useradd vs adduser :quelles sont les différences ?

Qu'est-ce que la commande d'exportation est censée faire sous Linux ?

Quels sont les avantages du gestionnaire de volumes logiques