如何在 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」的內容。

相關內容