Sublime Text 2 内からファイル権限を編集するには (例: スクリプト ファイルを実行可能にする) どうすればよいでしょうか?

Sublime Text 2 内からファイル権限を編集するには (例: スクリプト ファイルを実行可能にする) どうすればよいでしょうか?

例えばシェルスクリプトを書くとき、その権限(主に実行可能Sublime Text 2 内から (権限) を取得します。

どうすればそれを達成できるでしょうか?

答え1

以下は、現在編集中のファイルの一般的な権限編集コマンドです。プラグインとSublime Text 2メニューの編集に関する詳細な説明については、この郵便受け

それはモードの変更コマンドの編集メニュー。選択すると、ユーザーは chmod に有効な引数文字列 (例:u+rwxまたは755。デフォルトは のような現在設定されている 4 桁の 8 進権限文字列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' のようなものが返されます。

関連情報