GNU/Linux >> Znalost Linux >  >> Linux

Co jsou oddělovače slov Readline?

Když smažu „slovo“ v Bash, zastaví se na určitých znacích, jako je _ a / . Například když napíšu

/foo/bar

a aktivujte backward-kill-word (obvykle mapováno na AltBackspace a/nebo Ctrlw ), zbývající text je

/foo/

. To není odpovídají $COMP_WORDBREAKS nebo readline rl_completer_word_break_characters . Jak mohu zjistit (nejlépe v běžícím systému, spíše než výchozí hodnoty v kódu, protože je lze pravděpodobně přepsat), které znaky se používají k určení dělení slov?

Přijatá odpověď:

Dokumentace bash uvádí:

backward-kill-word (M-Rubout)

Zabijte slovo za bodem. Hranice slov jsou stejné jako ty, které používá zpětné slovo.

A

backward-word (M-b)

Přesun zpět na začátek aktuálního nebo předchozího slova. Slova se skládají z alfanumerických znaků (písmen a číslic).

Zpracování backward-word v Bash 4.2 se provádí v přibaleném kódu libreadline (text.c:rl_backward_word ). Rozdělení slov je založeno na rl_alphabetic , který sám spoléhá na isalnum funkce. To je závislé na národním prostředí, ale nelze jej konfigurovat přímo v bash.

Všimněte si, že Bash 4.0 zavedl další typ „word“ s shell-forward-word a shell-backward-word akce (a ekvivalenty zabíjení). Tyto se lámou pouze u metaznaků shellu (()<>;&|" ) a mezery (pravděpodobně závislé na národním prostředí pomocí isblank). ), zpracovaný v hlavním bash kódu (bashline.c ).


Linux
  1. Debian vs Ubuntu:Jaké jsou rozdíly?

  2. Jaké jsou různé typy shellů v Linuxu?

  3. Jaké jsou výhody CloudLinuxu?

  1. Co jsou výstupní kódy Bash v Linuxu

  2. Jaké jsou nevýhody linuxových front zpráv?

  3. Co dělá -e v bash shebang?

  1. Jaké jsou základní rozdíly mezi mainstreamovými *nix shelly?

  2. Router pfSense vs Netgear:Jaké jsou hlavní rozdíly?

  3. Fedora vs Ubuntu:Jaké jsou klíčové rozdíly?