Скрыть каталоги dot и dotdot ("./", "../") в NERDTree gVim

1190
Zachary J Rollyson

Это в gVim на Windows.

NERDTree - это регистрация ../и ./ссылки в каждом каталоге. К ->Я думал, возможно, они были ярлыки / символьные ссылки, которые получили добавлены ко всем моим каталогам, однако в файловом проводнике Windows, я вижу, ничего не указывает на тот случай. Я могу нажать Shift+, iчтобы скрыть их, но мне нравится видеть точечные файлы.

Я также недавно установил mysysgit, который добавляет некоторые инструменты Unix к пути. Я всегда делал это в системах Windows без негативных последствий, но раньше я не использовал gVim & NERDTree. Возможно, добавляя инструменты Unix, он сделал что-то смешное, чтобы разрешить cd ../и такое в приглашениях Windows? В моей системе Debian NERDTree этого не делает.

Я довольно новичок в Vim и NERDTree и обычно я не работаю в Windows, поэтому я потерян.

Снимок экрана -> Скриншот

Чтобы уточнить, я пытаюсь скрыть это.

Я попытался возиться let NERDTreeIgnore=[...]безрезультатно.

2
./ это текущий каталог. ../ это предыдущий. Они всегда работали в Windows (хотя обычно это были бы. \ И .. \). Не уверен, почему NERDTree будет показывать их, но они не являются чем-то новым на уровне ОС. Herms 11 лет назад 1

2 ответа на вопрос

4
Dennis

Windows's file systems (FAT, FAT32, NTFS) all have directory entries . and .. in each directory, which correspond to the current and the parent directory, respectively.

From the Microsoft EFI FAT32 File System Specification:

When a directory is created, [...] [i]f the directory is not the root directory, you need to create two special entries in the first two 32-byte directory entries of the directory (the first two 32 byte entries in the data region of the cluster you just allocated).

The first directory entry has DIR_Name set to:
“.          ”

The second has DIR_Name set to:
“..         ”

These are called the dot and dotdot entries. The DIR_FileSize field on both entries is set to 0, and all of the date and time fields in both of these entries are set to the same values as they were in the directory entry for the directory that you just created. You now set DIR_FstClusLO and DIR_FstClusHI for the dot entry (the first entry) to the same values you put in those fields for the directories directory entry (the cluster number of the cluster that contains the dot and dotdot entries).

Finally, you set DIR_FstClusLO and DIR_FstClusHI for the dotdot entry (the second entry) to the first cluster number of the directory in which you just created the directory (value is 0 if this directory is the root directory even for FAT32 volumes).

Here is the summary for the dot and dotdot entries:

  • The dot entry is a directory that points to itself.
  • The dotdot entry points to the starting cluster of the parent of this directory (which is 0 if this directories parent is the root directory).

In fact, these directory entries are present in each directory. They are implied, so there might not be much value in showing them in NERDTree, but that's just a design choice.

Функция, взятая без изменений из более ранних файловых систем и демонстрирующаяся в Unix. Не уверен, что он возник в Unix или появился еще раньше в истории вычислительной техники (может быть, из мультификса). dmckee 11 лет назад 0
Хотя это * довольно * интересно, я действительно хочу скрыть только эти записи, а не разные файлы точек. Я не видел этих записей при использовании NERDTree в среде Linux (я знаю, что они есть, но они скрыты), не могу себе представить, почему это на самом деле выбор дизайна (ни один, нацеленный специально на gVim / Windows в этом отношении). Zachary J Rollyson 11 лет назад 0
Я приму этот ответ за потрясающую информацию о Windows FS. Zachary J Rollyson 11 лет назад 1
1
Kevin Panko

Следующее делает то, на что я надеялся let NERDTreeIgnore=['\.\.$', '\.$', '\~$']

Примечание:'\~$' является отдельным регулярное выражение, чтобы игнорировать файлы Тильда-d 'резервного копирования, сгенерированные Vim, например somefile.text~.

Этот ответ скопирован с ответа Goluptious, который был неправильно написан в вопросе.