如何在 Sublime Text 2 中编辑文件权限(例如使脚本文件可执行)?

如何在 Sublime Text 2 中编辑文件权限(例如使脚本文件可执行)?

在编写 shell 脚本时,我想更改它们的权限(主要是可执行文件在 Sublime Text 2 中,您可以:

我怎样才能做到这一点?

答案1

以下是当前正在编辑的文件的通用权限编辑命令。有关插件和编辑 Sublime Text 2 菜单的更详细说明,请参阅这个帖子

它将添加更改模式命令编辑菜单。选择后,系统会要求用户输入 chmod 的有效参数字符串(例如u+rwx755;默认值是当前设置的 4 位八进制权限字符串,如0644),然后将其应用于正在编辑的文件。

输入面板的屏幕截图

选择工具 » 新插件,插入以下内容并保存chmod.py~/Application Support/Sublime Text 2/Packages/User/

import sublime, sublime_plugin, subprocess

def chmod(v, e, permissions):
    subprocess.call( [ "chmod", permissions, v.file_name() ] )

def stat(filename):
    proc = subprocess.Popen( [ "stat", "-f", '%Mp%Lp', filename ], stdout=subprocess.PIPE )
    return str(proc.communicate()[0]).strip()

class ChangeModeCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        if sublime.platform() != 'osx':
            return

        fname = self.view.file_name()

        if fname == None:
            sublime.message_dialog("You need to save this buffer first!")
            return

        perms = stat(fname)

        def done(permissions):
            chmod(self.view, edit, permissions)

        sublime.active_window().show_input_panel(
            "permissions to apply to the file " + fname + ": ", perms, done, None, None)

要为此命令插入菜单项,请将以下内容添加到~/Application Support/Sublime Text 2/Packages/User/Main.sublime-menu,如果文件已存在,则与现有文件内容合并:

[
    {
        "id": "edit",
        "children":
        [
            {"id": "wrap"},
            { "command": "change_mode" }
        ]
    }
]

答案2

它基本上也在 Linux 下运行,但是stat命令的工作方式不同,并且显示了许多不需要的信息。

stat -c %a filename 

将会执行并返回类似“644”的内容。

相关内容