Como navegar no sistema de arquivos de forma eficiente? [fechadas]

2

Esta questão está na mentalidade "faça tudo através do terminal". Acho que navegar pelo sistema de arquivos é muito ineficiente. Meu fluxo de trabalho típico é:

Eu quero ir para ~/foo/bar/boo/far/my/project/file.txt

cd ~
cd foo/b...???
# okay, I won't quite remember what bar was called
# let me just go to "foo" and view it
cd foo
ls
# Oh, it was bar
cd bar
# Now, what was after bar again?
ls
# boo, that is it.
cd boo
pwd
ls
cd for
cd my
# ERROR: my not found
ls
# at this point I'm kinda lost where I am
pwd
cd ..
cd far
cd my
cd pro<tab>
cd proj<tab>
cd proje<tab>
# wtf am I in the wrong directory again?
ls
# notice there is a directory called projectiles, that's why it doesn't work
cd project
vim fi<tab>

Agora eu quero ir para ~ / foo / bar / boo / settings.txt

cd ../../..
vim set<tab>
# notice I'm editing a completely different file
# wtf
# :q
ls
# oh I'm in the wrong place
pwd
cd ..
vim set<tab>
# :q
# Done!

Em um mundo perfeito, eu provavelmente digitaria vim ~/foo/bar/boo/far/my/project/file.txt , mas em um fluxo de trabalho do mundo real, seria o equivalente a digitar o código-fonte de um programa da linha 0 até a última linha sem perder um personagem. É assim que funciona o trabalho - você precisa de algum tipo de interação, é um processo estragado e confuso. E usar cd , ls e pwd para isso é muito ineficiente para mim.

Existe uma maneira melhor? Estou faltando alguma coisa?

    
por viclib 20.12.2015 / 13:20

2 respostas

3

Existem várias opções diferentes para ajudar com esses problemas:

  • Use aliases

    • Ambos para diretórios comumente usados, por exemplo alias q='cd /home/durrantm/Dropbox/94_2015/work/code/ruby__rails/ruby/ruby_quiz' e também para comandos comuns. Mesmo alias p=pwd facilita a vida quando você digita pwd cem vezes por dia. Você notará que os alias de uma letra são um dos meus truques favoritos.
  • Personalize seu prompt do PS1 (procure o prompt do PS1) para ajudar a mostrar onde você está. Aqui está o meu: Recursos:

    • mostraosdiretóriostop3ebottom2(comsublinhadoentrequandomaisde5níveis)
    • umretornodecarro,portanto,opromptrealestáemumanovalinha
    • usacoresparaasdiferentesinformações
    • mostremeugitbranchquandoestouemumprojetogit.
    • funcionatantonoUbuntuquantonoOSX(euusoambososdias)
    • mostradata,usuárioemáquina

    Maisem link

  • Use ctrl-p dentro do vim como indicado e mostrado por muru

  • Instale e use o autojump ( link ) para lembrar seus diretórios de linha de comando visitados. Isso pode ser perfeito para você.

  • O localizador confuso da linha de comando também pode se adequar ao seu estilo - mais em link

  • Use o z-shell que tende a ter mais suporte embutido e melhores opções, como cdpath (o preenchimento de diretório de formato de menu do Z Shell) e a opção autocd do Z Shell,

por 20.12.2015 / 14:13
2

Se você usa vim , considere usar o o plugin CtrlP . Pode demorar um pouco para indexar arquivos na primeira execução em um diretório, mas depois disso, é rápido. Ele coincide com o caminho inteiro, portanto, desde que você se lembre de alguns trechos do caminho com precisão, é bastante útil. Aqui está eu procurando por arquivos em /usr/share :

Meu /usr/share tem mais de 150000 (178038 arquivos regulares de acordo com find ), então eu adicionei let g:ctrlp_max_depth = 10 e let g:ctrlp_max_files = 0 ao meu .vimrc . A indexação levou alguns segundos na primeira execução.

    
por 20.12.2015 / 14:04