Pacote planificado navegando no Vim

1

Atualmente estou usando o NERDTree para navegar pelos diretórios dentro do Vim. Uma coisa que eu sinto falta de IDEs heftier (por exemplo, Eclipse) é a capacidade de navegar em uma visão achatada ou "pacote" da estrutura de diretórios, particularmente ao navegar pacotes Java ou Python (por exemplo).

Isto:

com.foo.bar
com.foo.baz

Em vez disso:

com/
  foo/
    bar/
    baz/

Você pode chegar rapidamente a qualquer nó que contenha origem sem navegar pelo caminho inteiro para essa origem.

Alguém ciente de um plug-in ou outra forma de realizar isso?

    
por Joe Holloway 01.07.2010 / 17:40

2 respostas

2

Veja o plugin Command-T:

link

Esta é a descrição do desenvolvedor:

The Command-T plug-in for VIM provides an extremely fast,
intuitive mechanism for opening files with a minimal number
of keystrokes. It's named "Command-T" because it is inspired
by the "Go to File" window bound to Command-T in TextMate.

Files are selected by typing characters that appear in their
paths, and are ordered by an algorithm which knows that
characters that appear in certain locations (for example,
immediately after a path separator) should be given more weight.

Conforme você navega, os arquivos são apresentados em uma lista simplificada, com nomes de caminhos completos em relação ao diretório atual:

Surface.java
TextureChooser.java
Tools.java
demos/Arcs_Curves/Arcs.java
demos/Arcs_Curves/BezierAnim.java
demos/Arcs_Curves/Curves.java
demos/Arcs_Curves/Ellipses.java
demos/Clipping/Areas.java
demos/Clipping/ClipAnim.java
demos/Clipping/Intersection.java
demos/Clipping/Text.java
demos/Colors/BullsEye.java
demos/Colors/ColorConvert.java
demos/Colors/Rotator3D.java
demos/Composite/ACimages.java
demos/Composite/ACrules.java

Para restringir a lista de arquivos, digite caracteres de qualquer lugar no nome do caminho. Por exemplo, dcb ou bul são suficientes para especificar demos/Colors/BullsEye.java .

Depois de digitar o nome do caminho o suficiente para encontrar o arquivo desejado, basta pressionar Enter para carregá-lo. (Você não precisa ir até um único arquivo; quando estiver perto, você pode usar as teclas de seta para selecionar o que deseja).

De qualquer forma, não é exatamente o que você descreveu, mas pode ser exatamente o que você quer. : -)

    
por 07.07.2010 / 08:20
0

editar

minhas desculpas por uma resposta original que estava completamente incorreta. Esta versão revisada é muito mais dotada de lógica.

Você poderia fazer

:new
:r !find -type d

e, em seguida, coloque o cursor no diretório em que você está interessado e pressione ^ W-F para obter uma janela netrw nesse diretório.

Isso lhe dará uma listagem de todos os diretórios, incluindo aqueles que possuem subdiretórios. Parece que você só quer ver os diretórios que não têm subdiretórios.

Então, para filtrar para mostrar apenas 'nós de folha', você poderia enviá-lo para outro comando. Eu suspeito que há uma maneira melhor, mas isso deve ser feito:

:r !find -type d | while read d; do if (( $(find "$d" -mindepth 1 -maxdepth 1 -type d | wc -l) == 0 )); then echo "$d"; fi; done

Basicamente, ele passa por todos os subdiretórios e imprime os que não possuem subdiretórios. Essa é uma maneira bastante ineficiente de fazer isso, mas você deve conseguir o que (eu acho) você quer.

Eu nunca usei o NERDTree, então não posso dizer como isso se integraria a ele .. mas é assim que eu faria isso. Se você estiver usando o Windows, desconsidere este aviso.

    
por 01.07.2010 / 19:56

Tags