Comentar

bash completion

 
Ha meses peguei uma boa função do que simplifica acessar os diferentes projetos web em que estamos trabalhando, a função é esta:

function www() {
  cd "/www/$1"
}

Bastante simples.  Ao digitar www[enter], vai pra pasta /www, ou www projeto[enter]
Mas faltava a a cobertura do bolo, completar com [tab] o nome dos projetos existentes, isso só funcionava se estivessemos na pasta /www, naturalmente
Consegui escrever um script bash usando o completion, que faz isso estando em qualquer pasta do sistema
Você precisa ter no seu ~/.bashrc a seguinte linha:

. /etc/bash_completion

Depois, crie este arquivo /etc/bash_completion.d/_www e adicione este código
 

_www() {
  local dirs=("/www/$2"*/); [[ -e ${dirs[0]} ]] && COMPREPLY=( "${dirs[@]#/www/}" );
}

Finalmente, edite o arquivo /etc/bash_completion e adicione esta linha em qualquer lugar:

 

complete -F _www www

 

Salve, feche o shell e abra novamente

 

Pronto, agora você pode acessar seus projetos mais rapidamente :)

 

Nota: Se seus projetos não estiverem em /www, crie um symlink (cd /&&sudo ln -s /pasta/dos/projetos /www) ou altere nas funções acima o para o caminho correto

 

Filtered HTML

  • Endereços de páginas de internet e emails viram links automaticamente.
  • Twitter-style #hashtags are linked to https://twitter.com.
  • Twitter-style @usernames are linked to their Twitter account pages.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <bash> <php> <css> <mysql>
  • Quebras de linhas e parágrafos são feitos automaticamente.

Plain text

  • Nenhuma tag HTML permitida.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Quebras de linhas e parágrafos são feitos automaticamente.