При написании скриптов например, я хочу изменить свои права ( в первую очередь исполняемым разрешения) изнутри Sublime Text 2.
Как я могу это сделать?
При написании скриптов например, я хочу изменить свои права ( в первую очередь исполняемым разрешения) изнутри Sublime Text 2.
Как я могу это сделать?
Ниже приведена команда редактирования разрешений общего назначения для редактируемого файла. Более подробное описание плагинов и редактирование меню 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" }
]
}
]
Он в основном работает и под Linux, но команда stat
работает по-другому и показывает множество ненужной информации.
stat -c %a filename
будет делать вместо этого и возвращает что-то вроде «644».