Правильный шаблон для автокоманды VIM? - PullRequest
1 голос
/ 17 августа 2010

У меня есть каталог Windows (U:\S), который содержит файлы, которые нельзя изменять.Их бит только для чтения не может быть установлен, поэтому они должны оставаться доступными для записи.

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

Итак, я поместил следующую строку в мой .vimrc файл конфигурации:

autocmd InsertEnter u:/s/* call confirm("File should not be changed")

, который казался для нормальной работы.

Но тогда у меня также есть каталог с именем U:\supportTerminal, который содержит файлы, которые я должен изменить .Когда я редактирую файл в этом каталоге, шаблон файла по какой-то причине совпадает с u:/s/*, и появляется мое предупреждение.

Я попытался поиграть с каким-то шаблоном, но не нашел ни одного, который бы совпадал только с u: \s, но не в пределах u: \ supportTerminal

Итак, как я могу получить то, что хочу?

1 Ответ

2 голосов
/ 18 августа 2010

Это ошибка, о которой вы должны сообщить vim-dev at vim.org. В Linux у меня нет такого поведения: оно хорошо сочетается.

В качестве временного решения,

:au BufRead u:/s/* set readonly
:au! BufRead u:/supportTerminal/* 

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

:au BufRead u:/supportTerminal/* set noreadonly

PS: Как уже упоминалось в комментариях выше, установка собственной настройки vim readonly работает лучше, чтобы предотвратить случайные изменения. Пользователь не может :write файлы с включенным флагом RO, но его можно обойти, установив noreadonly при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...