Есть ли способ иметь «виртуальное» редактирование в Vim? - PullRequest
1 голос
/ 19 марта 2012

Трудно описать 1 или 2 словами, поэтому здесь я приведу пример использования:

  1. Пользователь A создает текстовый файл, который действует как заполняемая форма / контрольный список
  2. Пользователь A сохраняет файл в общий репозиторий
  3. UserB и UserC открывают файл и заполняют форму / контрольный список, выполняя свою работу
  4. Изменения полей (в идеале) или всего файла игнорируются, если файл был сохранен случайно

Примечание : UserB и UserC, возможно, также должны иногда вносить структурные изменения в текстовый файл, поэтому запретить им доступ на запись / изменение на уровне файловой системы / общего файлового ресурса не вариант. Когда необходимо структурное редактирование, это должно быть осознанное решение (например, пользователь открывает файл со специальным флагом для vim или нажимает последовательность клавиш «разблокировать» после открытия файла).

1 Ответ

1 голос
/ 20 марта 2012

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

Самый простой способ сделать это - пометить файл как доступный только для чтения в файловой системе.В Windows вы можете сделать это с помощью attrib +r filename.txt.Я забыл, есть ли эквивалентный атрибут в системах Unix-стиля, или вам вместо этого нужно фактически полностью удалить разрешения на запись.

Когда UserB или UserC должны сохранить свои изменения для структурных изменений, вместо этого они делают :w!обычного :w, чтобы сохранить файл.Это заставляет vim игнорировать атрибут readonly и в любом случае сохранить файл.

...