GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener la finalización de Bash para alias de comando?

Estoy buscando completar la tabulación en mis alias de línea de comando, por ejemplo, digamos que definí el siguiente alias:

alias apt-inst='sudo aptitude install'

¿Hay alguna manera de obtener las terminaciones proporcionadas por aptitude cuando presiono la tecla de tabulación? es decir, cuando escribo 'sudo aptitude install gnumer' y presiono el tabulador, aptitude completa esto a gnumeric, o si hay dudas enumera todos los paquetes disponibles comenzando con gnumer. Si lo hago usando mi alias, nada, no se completa.

Respuesta aceptada:

Hay un gran hilo sobre esto en los foros de Ubuntu. Ole J propone la siguiente función de definición de finalización de alias:

function make-completion-wrapper () {
  local function_name="$2"
  local arg_count=$(($#-3))
  local comp_function_name="$1"
  shift 2
  local function="
    function $function_name {
      ((COMP_CWORD+=$arg_count))
      COMP_WORDS=( "[email protected]" ${COMP_WORDS[@]:1} )
      "$comp_function_name"
      return 0
    }"
  eval "$function"
  echo $function_name
  echo "$function"
}

Úselo para definir una función de finalización para su alias, luego especifique esa función como completadora para el alias:

make-completion-wrapper _apt_get _apt_get_install apt-get install
complete -F _apt_get_install apt-inst

Prefiero usar alias para agregar argumentos siempre usados ​​a programas existentes. Por ejemplo, con grep , siempre quiero omitir dispositivos y archivos binarios, así que hago un alias para grep . Para agregar nuevos comandos como grepbin , uso un script de shell en mi ~/bin carpeta. Si esa carpeta está en su ruta, se completará automáticamente.


Linux
  1. 10 prácticos alias de Bash para Linux

  2. Cómo hacer que el comando de alias funcione en script bash o archivo bashrc

  3. C++ 11:¿Cómo crear un alias de una función?

  4. ¿Cómo desarmo o me deshago de una función bash?

  5. ¿Cómo encuentro ayuda para el comando de punto `.` en *nix?

Cómo crear alias de Bash

Crear y usar alias de Bash en Linux

Cómo crear un alias en Linux

Cómo crear alias para personalizar comandos en Ubuntu

Comando de alias de Linux

Cómo crear alias para personalizar comandos en Debian