
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдк-рдкрд╛рда 2 рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХреЛрдИ рдРрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рднреА рдЬреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдИрдбреАрдИ рджреНрд╡рд╛рд░рд╛ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдХреЗ рд╕реБрдВрджрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд╣реА рдерд╛ рдЬрд┐рд╕рдиреЗ рд╢реБрд░реВ рдореЗрдВ рдореБрдЭреЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛)ред
рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдкрд╛рджрдХ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╖рдп рд╣реИрдВ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЙрдкрдХрд░рдг рдХреЛ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП $ 59 рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рджрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдкреНрд▓рдЧ-рдЗрди
рдмрд╛рдХреА рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЖрдИрдбреАрдИ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЗ рдКрдкрд░ рд╕рдмрд▓рд╛рдЗрдо рдЯреЗрдХреНрд╕реНрдЯ 2 рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдЖрдкрдХреЗ рдЦреБрдж рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЧреНрд░рд╣рдг рдпрд╛ Geany рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдИ рдЯрди рд╕рд╛рд╣рд┐рддреНрдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рд╣реИ, рдЬреЛ рдореЗрд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред
рдореБрдЭреЗ рдпрд╣ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдЖрдпрд╛ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЖрд╕рд╛рди рдЕрдЬрдЧрд░ рдХрдВрд╕реЛрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрдЪреНрдЫрд╛-рд╕реВрдЪреА
рдореИрдВ рдЙрди рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдирдХреА рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд░реВрд░рдд рдереА рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдмреИрдХрдЕрдк рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ
рдореИрдВ php рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдиреЗ рдЬрдбрд╝ рдирд╣реАрдВ рд▓реА, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдЙрджрд╛рддреНрдд рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЧреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдРрдб-рдЗрди рдерд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЪрдпрдирд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдРрдб рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдорд╛рдЗрдирд╕ рдпрд╣ рдерд╛ рдХрд┐ рд╣рд░ рдмрд╛рд░ рд╕реЗрд╡ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреИрдХрдЕрдк рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдореИрдВ рдЙрджрд╛рддреНрдд рдореЗрдВ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдорд╛рдВрдЧ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд░реНрдо рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдХрд░)ред рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдорд╛рди рдкреНрд▓рдЧ-рдЗрди рдСрдЯреЛрдореИрдмрдЕрдкрдЕрдк рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦреЗрдВрдЧреЗред рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдПред
рдлрд╝рд╛рдЗрд▓ рддреБрд▓рдирд╛
рдЬрдм рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╕рд╛рде рдПрдлрд╝рдЯреАрдкреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ)ред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдореЗрд▓ рдЦреЛрд▓реА, рд╡рд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдФрд░ рдЕрдВрддрд░ рдХреЛ рджреЗрдЦрд╛ред рдореИрдВ рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд╕рдВрдкрд╛рджрдХ рдХреЛ рд╕реМрдВрдкрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХреА: рдореИрдВ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рдЯреИрдм рдХреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд░рдЦрддрд╛ рд╣реВрдВ, рдЧрд░реНрдо рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ рдФрд░ рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдореЗрд▓рдб рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЯреИрдм рдЬрд┐рд╕рдХреА рдлрд╛рдЗрд▓ рдЖрдЧреЗ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрд╛ред
рд╕рднреА рдЦреБрд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА
рдХрд╛рдо рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ, рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рд╕рдВрдкрд╛рджрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд╣рд╛рдБ, рдпрд╣рд╛рдВ рдпрд╣ svn рдХреЗ рдмрд┐рдирд╛ рдЬреАрд╡рди рд╣реИ)ред рдореИрдВ рдПрдХ рдЧрд░реНрдо рдХреБрдВрдЬреА рджрдмрд╛рдХрд░ рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЪрд▓реЛ рдХрд╛рдо рдкрд░ рд▓рдЧ рдЬрд╛рдУ
рдореИрдВрдиреЗ рдЙрди рдЫреЛрдЯреА-рдЫреЛрдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛, рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдореБрдЭреЗ рд╕реБрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рдЬ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдереАред
рдЖрдЧреЗ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореЗрд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреИрд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдФрд░ рдпрд╣ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдореИрдВрдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрдмрдВрдЯреВ рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рдерд╛ рдФрд░ рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреИрдХрдЕрдк рдкреНрд▓рдЧрд┐рди
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдкрд╛рджрдХ рдЦреЛрд▓реЗрдВ, рдореЗрдиреВ рд╕реЗ рдЯреВрд▓-> рдирдпрд╛ рдкреНрд▓рдЧ рдЗрди рдЪреБрдиреЗрдВ ... рдкреНрд░рдкрддреНрд░ рдХреЗ рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрдм рдЦреБрд▓рддрд╛ рд╣реИ:
import sublime, sublime_plugin
class ExampleCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0, "Hello, World!")
. , , . Command. , _
~/.config/sublime-text-2/Packages/User/ backup.py:
import sublime, sublime_plugin
class BackupCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0, "Hello, World!")
:
тАФ . sublime. sublime active_window тАФ , . views тАФ . , view, :
sublime.active_window().active_view()
view file_name(), . - . Preferences->Key Bindings тАФ User backup F7:
[
{ "keys": ["f7"], "command": "backup" }
]
:
import sublime, sublime_plugin
class BuckupCommand(sublime_plugin.TextCommand):
def run(self, edit):
print sublime.active_window().active_view().file_name()
, Python (ctrl+`) F7. .
API тАФ .
sublime.status_message('')
API :
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
import os, time, shutil, sys
# UnicodeDecodeError
sys.setdefaultencoding('utf-8')
# ,
backup_dir = "/home/deadlink/backup/"
class BackupCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.create(sublime.active_window().active_view().file_name())
def create(self, filename):
#
now = time.localtime()
# ___
prefix = str(now.tm_hour)+"_"+str(now.tm_min)+"_"+str(now.tm_sec)+"_"
# __
stamp = str(now.tm_year)+"_"+str(now.tm_mon)+"_"+str(now .tm_mday)
# / / / /
full_path = backup_dir+stamp+os.path.dirname(filename)
# ,
if not os.path.isdir(full_path):
os.makedirs(full_path) # ,
#
shutil.copyfile(filename, full_path+"/"+prefix+os.path.basename(filename))
#
sublime.status_message(" " + filename + " !")
, ~/backup/, , SideBar ( View->SideBar->show). File->OpenFolder backup. . F7 . :

Diff
Diff, , Backup. :
view, . , :
sublime.active_window().views()
, . view id. , view . :
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
import subprocess
class DiffCommand(sublime_plugin.TextCommand):
def run(self, edit):
cur = num = 0
# view
views = sublime.active_window().views()
# view , id
for view in views:
if view.id() == sublime.active_window().active_view().id():
# id , view
cur = num
num += 1
# view
if num-1 != cur:
# meld
subprocess.Popen([
'meld',
views[cur].file_name(),
views[cur+1].file_name()
])
meld. Ubuntu, :
sudo apt-get install meld
diff - . Preferences->Key Bindings тАФ User F2:
[
{ "keys": ["f7"], "command": "backup" },
{ "keys": ["f2"], "command": "diff" }
]
, F2. meld, . !
. , , :
import sublime, sublime_plugin
class OpenedFilesCommand(sublime_plugin.TextCommand):
def run(self, edit):
# view
views = sublime.active_window().views()
files = ""
# view files
for view in views:
files += view.file_name()+"\n"
#
sublime.active_window().new_file()
#
sublime.active_window().active_view().insert(edit, 0, files)
, ctrl+shift+f:
[
{ "keys": ["f7"], "command": "backup" },
{ "keys": ["f2"], "command": "diff" },
{ "keys": ["ctrl+shift+f"], "command": "opened_files" }
]
, .
, Sublime Text 2. - , .
Python, , . , - .