當編寫例如 shell 腳本時,我想更改它們的權限(主要是執行檔許可)來自 Sublime Text 2。
我怎樣才能做到這一點?
答案1
以下是目前正在編輯的檔案的通用權限編輯命令。有關插件和編輯 Sublime Text 2 選單的更詳細說明,請參閱這個帖子。
它將添加一個改變模式命令在編輯菜單。選擇後,系統會要求使用者向 chmod 輸入有效的參數字串(例如u+rwx
或755
;預設值是目前設定的 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」的內容。