GNU/Linux >> Linux Esercitazione >  >> Linux

Quali sono i separatori di parole Readline?

Quando elimino una "parola" in Bash, si ferma a determinati caratteri come _ e / . Ad esempio, se digito

/foo/bar

e attiva backward-kill-word (in genere mappato su AltBackspace e/o Ctrlcon ), il testo rimanente è

/foo/

. Questo non corrisponde a $COMP_WORDBREAKS o readline 's rl_completer_word_break_characters . Come posso rilevare (preferibilmente in un sistema in esecuzione, piuttosto che i valori predefiniti nel codice, poiché presumibilmente possono essere sovrascritti) quali caratteri vengono utilizzati per determinare le interruzioni di parola?

Risposta accettata:

La documentazione di bash afferma:

backward-kill-word (M-Rubout)

Uccidi la parola dietro il punto. I limiti delle parole sono gli stessi di quelli usati dalla parola all'indietro.

E

backward-word (M-b)

Torna all'inizio della parola corrente o precedente. Le parole sono composte da caratteri alfanumerici (lettere e cifre).

La gestione di backward-word in Bash 4.2 viene eseguito nel codice libreadline in bundle (text.c:rl_backward_word ). L'interruzione di parola è basata su rl_alphabetic , che a sua volta si basa su isalnum funzione. Dipende dalle impostazioni locali, ma non è configurabile direttamente in bash.

Nota che Bash 4.0 ha introdotto un altro tipo di "parola" con shell-forward-word e shell-backward-word azioni (e uccidere equivalenti). Questi si interrompono solo sui metacaratteri della shell (()<>;&|" ) e spazi vuoti (possibilmente dipendenti dalle impostazioni locali tramite isblank ), gestito nel codice bash principale (bashline.c ).


Linux
  1. Debian vs Ubuntu:quali sono le differenze?

  2. Quali sono i diversi tipi di shell in Linux?

  3. Quali sono i vantaggi di CloudLinux?

  4. Quali sono i tipi di server DNS

  5. Cosa sono i codici di uscita Bash in Linux

Cassandra vs MongoDB - Quali sono le differenze?

Terraform vs Kubernetes:quali sono le differenze

Che cos'è Intel SGX e quali sono i vantaggi?

useradd vs. adduser:quali sono le differenze?

Cosa fa -e in un bash shebang?

Quali sono i vantaggi del Logical Volume Manager