这不是那些在操作系统级别设置了只读标志的文件,而是关于用户不打算修改的每个文件。我只想要崇高的文字 忽略任何更改并阻止保存任何内容 这样的文件。这种情况的一个示例是当用户正在阅读不应该被改变的源代码时。
“只是要非常小心,不要按任何按钮”无疑是一个很好的建议,但如果我“意外”(< - 空中引号)删除注释前面的octothorpe,或者在文件中添加新行对这些事情很敏感(Linux中的一些配置文件),然后通过偶然事件命中保存...
我发现 这个插件 在github,但它实际上是切换文件权限(只读,写) - 不是我想要的。
是的,这是可能的,但你必须编写一个插件(实际上并不那么难,特别是如果你了解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()
是的,这是可能的,但你必须编写一个插件(实际上并不那么难,特别是如果你了解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()
插件 切换视图只读 应该这样做。它基本上只是做了MattDMo所说的:当你将视图设置为只读时,文件仍然可以被另一个程序(或其他用户)更改,Sublime Text将获取这些更改。它还有您要求的上下文菜单项。我喜欢状态栏中的“Readonly”指示器。
没有在Sublime Text 2上测试它,但是在Sublime Text 3中,它工作得很好,并声称它也适用于Sublime Text 2。