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


这不是那些在操作系统级别设置了只读标志的文件,而是关于用户不打算修改的每个文件。我只想要崇高的文字 忽略任何更改并阻止保存任何内容 这样的文件。这种情况的一个示例是当用户正在阅读不应该被改变的源代码时。

“只是要非常小心,不要按任何按钮”无疑是一个很好的建议,但如果我“意外”(< - 空中引号)删除注释前面的octothorpe,或者在文件中添加新行对这些事情很敏感(Linux中的一些配置文件),然后通过偶然事件命中保存...

我发现 这个插件 在github,但它实际上是切换文件权限(只读,写) - 不是我想要的。


2510
2017-08-11 17:31


起源



答案:


是的,这是可能的,但你必须编写一个插件(实际上并不那么难,特别是如果你了解Python)。该 API 打电话是 view.set_read_only(flag) 在里面 sublime 模块,在哪里 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()

7
2017-08-11 22:10



+1精彩。我知道一点python,我必须阅读他们的api文档继续手动制作一个插件。是否可以在编辑器的上下文菜单中为所有文件类型添加“切换只读模式”? - Renae Lider
@RenaeLider是的,这是可能的。由于这不属于这个原始问题的范围,只需提出一个新问题并参考这个问题 - 如果你在接下来的24小时内完成,我应该能够回答它(我将在星期五休假)。 - MattDMo
OP实际上是否提出了这样的问题?这个QA的链接会很好,似乎无法找到它。 - emilBeBri


答案:


是的,这是可能的,但你必须编写一个插件(实际上并不那么难,特别是如果你了解Python)。该 API 打电话是 view.set_read_only(flag) 在里面 sublime 模块,在哪里 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()

7
2017-08-11 22:10



+1精彩。我知道一点python,我必须阅读他们的api文档继续手动制作一个插件。是否可以在编辑器的上下文菜单中为所有文件类型添加“切换只读模式”? - Renae Lider
@RenaeLider是的,这是可能的。由于这不属于这个原始问题的范围,只需提出一个新问题并参考这个问题 - 如果你在接下来的24小时内完成,我应该能够回答它(我将在星期五休假)。 - MattDMo
OP实际上是否提出了这样的问题?这个QA的链接会很好,似乎无法找到它。 - emilBeBri


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

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


2
2017-12-07 22:16