Правильный шаблон для автокоманды VIM?

У меня есть каталог 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
задан René Nyffenegger 17 August 2010 в 12:01
поделиться

1 ответ

Это вызывает ошибку, о которой вы должны сообщить 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 , если необходимо.

2
ответ дан 2 September 2019 в 22:06
поделиться
Другие вопросы по тегам:

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