如何设置打开文件时默认是只读模式

如何设置打开一个文件时默认是只读的?

在文件第一行加

-*- mode:read-only -*-
  1. M-x find-file-read-only 打开

  2. 在文件打开后执行:

    (read-only-mode)
    

    具体怎么实现就看你需求了。如果文件名有规律,就针对特定的文件名写勾子。

我是想打开任何新文件时都是只读的,怎么设置呢?

不明白什么叫做[打开新文件],是指:

  1. 新创建一个文件?(你打开一个空文件不编辑是什么用意?)
  2. 打开一个已经存在于硬盘上的文件?

无论是创建新文件,还是打开旧文件,在 emacs 里都是 find-file 这个动作,我暂且理解为你想要无差别对所有文件:

(defun read-only-setup ()
  (read-only-mode))

(add-hook 'find-file-hook #'read-only-setup)

这样,所有文件都是只读了,包括新建的空白文件。

如果要完善一点,可以在 (read-only-mode) 之前加上一个开关,方便使用过程中取消。

5 个赞

太赞了,这就是我需要的!!!:+1::+1::+1: 高手就是不一样啊,帅!!!

太赞了!!!

M-x view-file 也可行,(emacs) View Mode 提供了一些方便翻页的功能。

1 个赞

如何设置有特殊标签的文档用只读模式打开呢? 比如说:

:secret: 
:encrypt:

这个问题的来源是 org-mode 文档里, 包括有加密信息的时候, 不想让它被随便更改.