![Sublime Text 2 内からファイル権限を編集するには (例: スクリプト ファイルを実行可能にする) どうすればよいでしょうか?](https://rvso.com/image/1326444/Sublime%20Text%202%20%E5%86%85%E3%81%8B%E3%82%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%A8%A9%E9%99%90%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%20(%E4%BE%8B%3A%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%AE%9F%E8%A1%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%99%E3%82%8B)%20%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
例えばシェルスクリプトを書くとき、その権限(主に実行可能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' のようなものが返されます。