Tengo muchos alias que creé en mi .bash_aliases
archivo, y son muy útiles, así que si quiero toda la información en un paquete, hago algo como:
allinfo software-center
Y eso hace el equivalente de:
apt-cache show software-center
Como el alias se establece como:
alias allinfo='apt-cache show'
Pero hay una desventaja de esto, actualmente no puedo completar automáticamente TABcuando uso en allinfo
lugar del comando real. Entonces, me preguntaba si había una manera de superar esta desventaja y lograr que allinfo software-ce[TAB]
funcionara de la misma manera que cuando lo usa con el comando real, y no solo haciendo un gran espacio de tabulación.
Estoy usando gnome-terminal
.
Información del sistema operativo:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Información del paquete:
gnome-terminal:
Installed: 3.14.2-0ubuntu3
Candidate: 3.14.2-0ubuntu3
Version table:
*** 3.14.2-0ubuntu3 0
500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
100 /var/lib/dpkg/status
Respuestas:
Gran pregunta! Si su
allinfo
comando era el mismo que soloapt-cache
(es decir, sin elshow
), podríamos ver la finalizaciónapt-cache
y aplicarlo a suallinfo
alias.Sin embargo, desea un subconjunto de la
apt-cache
finalización, por lo que tenemos un poco más de trabajo por hacer.Si buscamos en la definición de finalización para
apt-cache
- in/usr/share/bash-completion/completions/apt-cache
, vemos que se utiliza lo siguiente para elshow
subcomando:- esto solo establece la
COMPREPLY
variable en la lista de paquetes coincidentes.Por lo tanto, podemos tomar prestado esto y escribir nuestra propia función, y vincularlo a su alias allinfo:
Si agrega esa fragmentación a su
.bashrc
archivo, debería hacer que las terminaciones funcionen como espera.fuente
No tengo idea
bash
, pero funciona conzsh
algunos complementosInstale el z-shell con
y establezca el z-shell como su shell estándar
e iniciar una nueva terminal para usar el z-shell
Añadir Antigen v1
Y configurar
Algunas imágenes (el aviso es nojhan / liquidprompt)
fuente
cd
y hago lo de la ruta del archivo. ¿Cómo consigo que lea el.bash_aliases
archivo?antigen: command not found
configuración.