У меня есть каталог Windows ( U: \ S
), который содержит файлы, которые не должны быть
изменилось. Их бит только для чтения не может быть установлен, поэтому они должны оставаться доступными для записи.
Поскольку мне приходится довольно часто просматривать содержимое файла с помощью VIM, я хочу убедиться, что случайно не изменил его содержимое.
Итак, я поместил следующую строку в мой файл конфигурации .vimrc
:
autocmd InsertEnter u:/s/* call confirm("File should not be changed")
, который , казалось, работал нормально.
Но тогда у меня также есть каталог с именем U: \ supportTerminal
, который содержит файлы
что я должен изменить. Когда я редактирую файл в этом каталоге, шаблон файла u: / s / *
по какой-то причине совпадает, и у меня появляется предупреждение.
Я попытался поиграть с каким-то шаблоном, но не нашел ничего, что совпадает только внутри u: \ s, но не внутри u: \ supportTerminal
Итак, как я могу получить то, что хочу?
Это вызывает ошибку, о которой вы должны сообщить vim-dev на vim.org
. В linux у меня нет такого поведения: он отлично сочетается.
В качестве временного решения
:au BufRead u:/s/* set readonly
:au! BufRead u:/supportTerminal/*
следует сначала создать общее правило, а затем удалить один каталог в качестве исключения. Не уверен, правильно ли это работает в Windows GVim. Если это не удастся, другой способ взлома:
:au BufRead u:/supportTerminal/* set noreadonly
PS: Как упоминалось в комментариях выше, установка собственного параметра vim только для чтения
работает лучше, чтобы предотвратить случайное редактирование. Пользователь не может : записывать
файлы с установленным флагом RO, но это можно обойти, установив noreadonly
, если необходимо.