Сглаженный просмотр пакета в Vim

Я в настоящее время использую NERDTree для просмотра каталогов в Vim. Одной вещью, которую я пропускаю от более значительных IDE (например, Eclipse) является способность просмотреть в сглаженном или представлении "пакета" структуры каталогов, особенно при просмотре Java или пакетов Python (например).

Это:

com.foo.bar
com.foo.baz

Вместо этого:

com/
  foo/
    bar/
    baz/

Можно быстро добраться до любого узла, который содержит источник, не перемещаясь по всему пути к тому источнику.

Кто-либо знающий о плагине или другом способе выполнить это?

1
задан 01.07.2010, 18:40

2 ответа

Смотрите на плагин Команды-T:

https://wincent.com/products/command-t

Вот описание от разработчика:

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.

Как Вы просматриваете, файлы представлены в сглаженном списке с полными путями относительно текущего каталога:

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

Сузить список файлов, символы текста отовсюду в пути. Например, dcb или bul достаточно должны указать demos/Colors/BullsEye.java.

После того как Вы ввели достаточно пути для нахождения файла, который Вы хотите, просто поражаете, Входят для загрузки его. (Вы не должны добираться полностью до единственного файла; после того как Вы близки, можно использовать клавиши со стрелками для выбора того, который Вы хотите.)

Так или иначе это не точно, что Вы описали, но это могло бы быть точно, что Вы хотите.:-)

2
ответ дан 12.12.2019, 13:14

править

мои извинения за исходный ответ, который был абсолютно неправильным. Эта исправленная версия намного больше одарена логикой.

Вы могли сделать

:new
:r !find -type d

и затем помещенный курсор в каталог Вы интересуетесь и хит ^W-F для получения netrw окна на том каталоге.

Это собирается дать Вам список всех каталогов, включая, которые имеют подкаталоги, все же. Это кажется, что Вы просто хотите видеть каталоги, которые не имеют подкаталогов.

Таким образом для фильтрации его так он просто показывает 'вершины', Вы могли передать его по каналу в другую команду. Я подозреваю, что существует лучший путь, но это должно сделать это:

: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

В основном это просто проходит все подкаталоги и печатает тех, которые самих не имеют подкаталогов. Это - довольно неэффективный способ сделать это, но это должно получить Вас, что (я думаю), Вы хотите.

Я никогда не использовал NERDTree, таким образом, я не могу сказать Вам, как это интегрировалось бы с ним.. но это - то, как я сделал бы это. При использовании Windows игнорируйте этот совет.

0
ответ дан 12.12.2019, 13:14

Теги

Похожие вопросы