Sublime Text 2是否具有只读模式?

时间:2015-08-11 17:31:11

标签: sublimetext2

这不是关于那些在操作系统级别设置了只读标志的文件,而是关于用户不打算修改的每个文件。我只是希望使用sublime文本来忽略任何更改,并防止将任何内容保存到此类文件中。这种情况的一个示例是当用户正在阅读不应该被改变的源代码时。

“只是要非常小心,不要按任何按钮”无疑是一个很好的建议,但如果我“不小心”(< - air quotes)在评论面前删除那个octothorpe,或者添加新的行到一个对这些东西敏感的文件(Linux中的一些配置文件),然后通过偶然事件点击保存......

我在github上找到了this plugin,但它实际上是在切换文件权限(只读,写入) - 不是我想要的。

2 个答案:

答案 0 :(得分:7)

是的,这是可能的,但你必须编写一个插件(实际上并不那么难,特别是如果你了解Python)。 sublime模块中的API调用为view.set_read_only(flag),其中Flag为布尔值。这是一个快速示例,用于检查新打开的文件是否具有某个后缀,如果是,则将其设置为只读。

import sublime
import sublime_plugin


class MakeViewReadOnlyCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        if self.view.file_name().endswith(".cfg"):
            self.view.set_read_only(True)


class ConfigFileListener(sublime_plugin.EventListener):
    def on_load(self, view):
        view.run_command("make_view_read_only")

使用Python语法打开一个新文件,将代码复制到其中,根据需要进行更改,然后将其保存在Packages/User目录中make_view_read_only.py。重新启动Sublime加载它,你应该全部设置。要测试某个视图是否为只读,请打开控制台并输入

view.is_read_only()

答案 1 :(得分:2)

插件Toggle the View Read-Only应该这样做。它基本上只是做了MattDMo所说的:当你将视图设置为只读时,文件仍然可以被另一个程序(或其他用户)更改,Sublime Text将获取这些更改。它还有您要求的上下文菜单项。我喜欢状态栏中的“只读”指示符。

没有在Sublime Text 2上测试它,但是在Sublime Text 3中它很好用,它声称也适用于Sublime Text 2。