как сделать открытый буфер доступным только для чтения, не перезагружая его снова с помощью команды «найти файл только для чтения» - PullRequest
9 голосов
/ 01 марта 2011

Мне нравится, когда мои буферы кодирования доступны только для чтения, когда я их не редактирую (например, редактирование режимов Vi, только для чтения).Для этого я могу использовать C-x C-q для включения / выключения буфера emacs для записи состояния.Кажется, что эта функция блокировки записи имеет некоторое наследование от RCS или аналогичного способа файловой блокировки / revision-system, поэтому работа с файлами под управлением версиями не работает:

C-x C-q
File is under version-control; use C-x v v to check in/out 

Я не хочу проверятьin / out я хочу только предотвратить "печатание кошки".Я могу написать макрос flip-flop find-file-read-only '/' find-file 'и дать некоторую привязку к нему, но я уверен, что уже будет решение внутри emacs или .el, написанное уже.Любое предложение?

Ответы [ 3 ]

8 голосов
/ 01 марта 2011

Вы можете использовать view-mode вместо.

4 голосов
/ 22 апреля 2011

или вы можете перехватить файл поиска

(add-hook 'find-file-hook
  '(lambda ()
     (when (and (buffer-file-name)
        (file-exists-p (buffer-file-name))
        (file-writable-p (buffer-file-name)))
       (message "Toggle to read-only for existing file")
       (toggle-read-only 1))))

и использовать Cx Cq для изменения состояния файла только для чтения

1 голос
/ 20 сентября 2013

Вы можете установить переменную файла , установив значение только для чтения в буфере в положительное значение.

Вам необходимо установить его в первые 2 строки файла. Например, здесь я установил его в буфер python:

#!/usr/bin/python
# -*- coding: utf-8 ; buffer-read-only: 1 ; -*-

Таким образом, вам не нужно запоминать после каждого открытия, чтобы установить его вручную.

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