Así, es posible completar los nombres de los ficheros, directorios, servidores, recursos externos, opciones de programas importantes (como apt-get, por ejemplo).
Ahora tenemos una posibilidad más: la de autocompletar el comando perldoc, incluido con cada distribución estándar de Perl.
Ya saben que perldoc saca la documentación de Perl, tanto de la documentación oficial como de las páginas de manual de los módulos y distribuciones. Lo que ahora se trata es de facilitar aún más la búsqueda de los términos que deseamos consultar.
El proceso de instalación es muy sencillo. El primer paso es copiar este programa Perl en cualquier ruta conocida por nuestra variable de entorno PATH. En mi caso, lo he guardado en ~/bin/ (la carpeta bin/ de mi directorio $HOME). Y le damos permisos de ejecución, con chmod 755. El segundo paso consiste en agregar la siguiente línea a .bashrc (o en cualquier otro bashrc que se ejecute en el login del usuario):
Using bash Syntax Highlighting
complete -C perldoc-complete -o nospace -o default perldoc
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Using bash Syntax Highlighting
alias pod=perldoc
complete -C perldoc-complete -o nospace -o default pod
complete -C perldoc-complete -o nospace -o default pod
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Hacemos una prueba. Escribo en la línea de comandos 'pod M' y pulso dos veces la tecla TAB. En la pantalla aparece
Using bash Syntax Highlighting
- explorer@casa:~> pod M
- Mail:: Memoize MIME:: MLDBM:: Module:: Moose:: Mouse MP3::
- Math:: Memoize:: MLDBM Modern:: Moose MooseX:: Mouse:: MRO::
- explorer@casa:~> pod M
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Ahora, si escribo 'pod -f bin' y pulso dos veces TAB, sale
Using bash Syntax Highlighting
- explorer@casa:~> pod -f bin
- bind binmode
- explorer@casa:~> pod -f bin
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Naturalmente, si solo escribo 'pod' y pulso dos veces la tecla TAB, salen todos los comandos que empiezan por 'pod':
Using bash Syntax Highlighting
- explorer@casa:~> pod
- pod pod2latex pod2man~ pod2usage pod_cover podselect
- pod2html pod2man pod2text podchecker podlint podtidy
- explorer@casa:~> pod
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Using bash Syntax Highlighting
- explorer@casa:~> pod
- Display all 301 possibilities? (y or n)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Lo mismo pasa si escribimos 'pod -f ' (lo mismo: hay un espacio en blanco al final) y pulsamos dos veces TAB: sale una lista con todas las funciones posibles de Perl (aquí, las de mi Perl v5.12.3):
Using bash Syntax Highlighting
- explorer@casa:~> pod -f
- Display all 218 possibilities? (y or n)
- abs endnetent getprotobynumber lstat read setpwent telldir
- accept endprotoent getprotoent m readdir setservent tie
- alarm endpwent getpwent map readline setsockopt tied
- atan2 endservent getpwnam mkdir readlink shift time
- bind eof getpwuid msgctl readpipe shmctl times
- binmode eval getservbyname msgget recv shmget tr
- bless exec getservbyport msgrcv redo shmread truncate
- break exists getservent msgsnd ref shmwrite uc
- caller exit getsockname my rename shutdown ucfirst
- chdir exp getsockopt next require sin umask
- chmod fcntl glob no reset sleep undef
- chomp fileno gmtime oct return socket unlink
- chop flock goto open reverse socketpair unpack
- chown fork grep opendir rewinddir sort unshift
- chr format hex ord rindex splice untie
- chroot formline import our rmdir split use
- close getc index pack s sprintf utime
- closedir getgrent int package say sqrt values
- connect getgrgid ioctl pipe scalar srand vec
- continue getgrnam join pop seek stat wait
- cos gethostbyaddr keys pos seekdir state waitpid
- crypt gethostbyname kill print select study wantarray
- dbmclose gethostent last printf semctl sub warn
- dbmopen getlogin lc prototype semget substr write
- defined getnetbyaddr lcfirst push semop symlink -X
- delete getnetbyname length q send syscall y
- die getnetent link qq setgrent sysopen
- do getpeername listen qr sethostent sysread
- dump getpgrp local quotemeta setnetent sysseek
- each getppid localtime qw setpgrp system
- endgrent getpriority lock qx setpriority syswrite
- endhostent getprotobyname log rand setprotoent tell
- explorer@casa:~> pod -f
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Desde luego, una herramienta muy útil para localizar información.