GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué son los separadores de palabras de Readline?

Cuando elimino una "palabra" en Bash, se detendrá en ciertos caracteres como _ y / . Por ejemplo, si escribo

/foo/bar

y active backward-kill-word (normalmente asignado a AltRetroceso y/o Ctrlw ), el texto restante es

/foo/

. Esto no corresponde a $COMP_WORDBREAKS o readline 's rl_completer_word_break_characters . ¿Cómo puedo detectar (preferiblemente en un sistema en ejecución, en lugar de los valores predeterminados en el código, ya que presumiblemente se pueden anular) qué caracteres se utilizan para determinar los saltos de palabra?

Respuesta aceptada:

La documentación de bash dice:

backward-kill-word (M-Rubout)

Mata la palabra detrás del punto. Los límites de las palabras son los mismos que los utilizados por la palabra hacia atrás.

Y

backward-word (M-b)

Retrocede al inicio de la palabra actual o anterior. Las palabras se componen de caracteres alfanuméricos (letras y dígitos).

El manejo de backward-word en Bash 4.2 se realiza en el código libreadline incluido (text.c:rl_backward_word ). La palabra descanso se basa en rl_alphabetic , que a su vez se basa en isalnum función. Esto depende de la configuración regional, pero no se puede configurar directamente en bash.

Tenga en cuenta que Bash 4.0 introdujo otro tipo de "palabra" con shell-forward-word y shell-backward-word acciones (y matar equivalentes). Estos se rompen solo en los metacaracteres de shell (()<>;&|" ) y espacios en blanco (posiblemente dependientes de la configuración regional a través de isblank ), manejado en el código bash principal (bashline.c ).


Linux
  1. Debian vs Ubuntu:¿Cuáles son las diferencias?

  2. ¿Cuáles son las diferencias fundamentales entre los principales * nix Shells?

  3. Enrutador pfSense vs Netgear:¿Cuáles son las principales diferencias?

  4. ¿Cuáles son los diferentes tipos de shells en Linux?

  5. ¿Cuáles son los directorios de inclusión predeterminados de GCC?

Cassandra vs MongoDB - ¿Cuáles son las diferencias?

Terraform vs Kubernetes:¿Cuáles son las diferencias?

¿Qué es Intel SGX y cuáles son los beneficios?

useradd vs adduser:¿Cuáles son las diferencias?

¿Qué hace la -e en un bash shebang?

¿Cuáles son los beneficios del Administrador de volúmenes lógicos?