рдЙрджрд╛рддреНрдд рдкрд╛рда 2 рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ

рдЫрд╡рд┐
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдк-рдкрд╛рда 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 . :

image


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, , . , - .

Source: https://habr.com/ru/post/In148842/


All Articles