Comments 189
Вроде бы поставить Git или Mercurial гораздо проще, чем писать свои велосипеды плагины.
Вы правы и я сам пользуюсь svn и git когда это возможно. Но есть случаи, для которых оно не то чтобы невозможно, а просто не целесообразно. Например попросили меня срочно поправить по ftp файлик. Ну или когда я писал этот топик, я тоже делал бакапы =)
А вообще, цель статьи не дать готовый инструмент, а показать как этот инструмент можно сделать самому. На примере своих потребностей.
А вообще, цель статьи не дать готовый инструмент, а показать как этот инструмент можно сделать самому. На примере своих потребностей.
ИМХО все таки git init. в локальной папке — git commit -am 'Backup' — удобнее и даже не важно, что у НИХ git не прижился.
Я, кстати, предпочитаю оставлять бэкапы на гитхабе, после того, как у них вышел собственный клиент под винду ;)
гитхаб дорогой.
Информация значительно дороже.
но гитхаб же не единственное решение, зачем платить больше. Сила гитхаба — это социализация: обсуждение кода, комментарии, свои форки. Если это нужно — тогда да. Но мне не разу этого не нужно было в коммерческих продуктах, только в OpenSource.
Поэтому, лично я, пользуюсь гитхабом для открытых проектов: когда либо форкаю чей-то проект, либо выкладываю свое.
Все приватные проекты храню на repositoryhosting.com Проблем за несколько лет не наблюдалось.
Поэтому, лично я, пользуюсь гитхабом для открытых проектов: когда либо форкаю чей-то проект, либо выкладываю свое.
Все приватные проекты храню на repositoryhosting.com Проблем за несколько лет не наблюдалось.
6$ за два гигабайта? Это как-то дороговато.
ну смотря как считать. У меня сейчас там лежит около 30-ти проектов, которые занимают один гиг. Каждый дополнительный гиг стоит $1. На гитхабе для хранения такого количества репозиториев мне пришлось бы покупать Gold аккаунт за 100 долларов в месяц. За эти деньги я бы мог на RH докупить еще 84 гига. Помоему более чем достаточно.
В любом случае гитхаб получается достаточно дорогим.
А что это у вас за проекты такие, что они так много места занимают?
В любом случае гитхаб получается достаточно дорогим.
А что это у вас за проекты такие, что они так много места занимают?
Да они немного места занимают ;) Пока.
Просто есть мысль взять папки Documents, Work, Archive и т.д. и сделать из них бэкап одним репозиторием.
Просто есть мысль взять папки Documents, Work, Archive и т.д. и сделать из них бэкап одним репозиторием.
Ну такие бэкапы не обязательно держать в облаке. Я для таких бэкапов пользуюсь машиной времени на внешний Thunderbolt Raid диск, все происходит в фоне и можно покапаться в разных версиях документов. Плюс инфрмация дублируется автоматически на двух дисках: если один полетит — на втором останется.
Но это под маком, уверен под виндой и линуксом есть подобные решения.
Но это под маком, уверен под виндой и линуксом есть подобные решения.
Dropbox вам в помощь.
Посмотрите в сторону, например, CrashPlan, тем более что для локальных бэкапов может хватить и бесплатной версии, а за $50 в год получаешь unlimited пространство для бэкапов. Версионность тоже поддерживается.
Сам пользуюсь уже несколько месяцев, весьма доволен, сделал полный бэкап в их облако + дополнительный бэкап самых нужных файлов на внешний винт, хоть один из бэкапов должен выжить :)
Сам пользуюсь уже несколько месяцев, весьма доволен, сделал полный бэкап в их облако + дополнительный бэкап самых нужных файлов на внешний винт, хоть один из бэкапов должен выжить :)
Не одним гитхабом, есть же совсем бесплатный и безлимитный BitBucket: bitbucket.org/plans/
BitBucket даёт неограниченное количество репозиториев, дискового пространства, и умеет работать с git.
да, но ограничивает на количестве пользователей и при превышении этого лимита (5 пользователей) становится дороже RH.
Ogra в своём комментарии писал:
бэкапы на гитхабеОтносительно бэкапов через vcs, BitBucket подходит лучше, чем GitHub.
Официальный git под винду тоже весьма не плох был, еще до выхода Github for Windows.
Расскажите, а как отправить на печать текст из этого редактора?
не появилось ли бесплатного плагина для работы по фтп или сфтп?
FTPSync.
Бесплатного не появилось, но платный плагин не создает особых проблем.
Да, сильно не хватает плагина как в Notepad++
Некое время мне нужен был плагин NppExport для копирования текста со стилями (copy RTF to clipboard). Вот его действительно тогда очень не хватало.
Для этого есть плагин Highlight. Экспортирует в HTML и RTF.
Попробовал поставить под вин 7, к сожалению у меня этот плагин не заработал. Выделяю текст, пытаюсь сконвертить, скопировать или просто просмотреть как RTF – ничего не происходит.
А можете кинуться ссылкой, а то не могу найти?.. Спасибо.
Обычный способ с монтированием томов самый простой.
В Nautilus, Файл->Подключиться к серверу, выбираете «cохранить пароль».
Слева в окне наутилуса в колонке снизу появится примонтированная удаленная папка, щёлкаете правой кнопкой 'добавить закладку', чтобы удобней было подключаться, и ваш сервер доступен легко из любой программы как локальная папка.
А в Sublime можно просто перетащить папку в «OPEN FILES».
В Nautilus, Файл->Подключиться к серверу, выбираете «cохранить пароль».
Слева в окне наутилуса в колонке снизу появится примонтированная удаленная папка, щёлкаете правой кнопкой 'добавить закладку', чтобы удобней было подключаться, и ваш сервер доступен легко из любой программы как локальная папка.
А в Sublime можно просто перетащить папку в «OPEN FILES».
Может, не совсем в тему, но что у него с русскими комментариями и синтаксисом PowerShell?


С русскими комментариями ОК у него всё. Пишите их в UTF-8.
Я буду писать их в том виде в котором мне удобно, не всегда можно использовать UTF8.
Здесь, после конвертации, оно открылось как надо, но что делать с кучей уже написанного кода?
Здесь, после конвертации, оно открылось как надо, но что делать с кучей уже написанного кода?
С русским у меня все хорошо. В меню есть пункт Reopen with encoding…
Осталось с PowerShell разобраться )))
спасибо, я написал комментарий и полез разбираться…
Нашел путь интересней
wbond.net/sublime_packages/package_control/installation
Установил оттуда Powershell, но синтаксис там кривой, по крайней мере мои файлы не тянет:

Попробовал установку, описанную вами — результат тот-же… Пичаль…
Нашел путь интересней
wbond.net/sublime_packages/package_control/installation
Установил оттуда Powershell, но синтаксис там кривой, по крайней мере мои файлы не тянет:

Попробовал установку, описанную вами — результат тот-же… Пичаль…
Вот прямо сейчас удалил и (а что надо было сделать еще?) заново поставил (+рестарт сублайма) гитхабовский (качал кнопкой ZIP), результат тот же :-(
При этом, в пакете есть файл bin\test-file.ps1, там в строке 185-187 есть этот момент и тестовый файл работает… продуктивный нет…
А проблема в том, что у меня в строке с закрывающимся «тегом» '@ есть еще символы…
и как это пофиксить?
и как это пофиксить?
Добавил себе тоже ;)
Как всегда — комменты на хабре бывают полезнее статей ;)
Как всегда — комменты на хабре бывают полезнее статей ;)
С комментариями это не у него, а у кодировки файла, по-видимому он не смог ее определить и открыл как UTF-8.
клон vim'а?
слово «бАкап» очень режет глаза.
backup ['bækʌp] — бэк-ап.
buck up — [бак' ап] — встряхивать.
iPad — не «айПад», а «айПэд».
Mom, please!
backup ['bækʌp] — бэк-ап.
buck up — [бак' ап] — встряхивать.
iPad — не «айПад», а «айПэд».
Mom, please!
Поправил =)
Да никто не говорит «бэкап» и «айпэд», кроме хипстеров.
æ гораздо ближе к «а», а не к «э». А buck up транслитерировать ещё можно как «бук ап», особенно если учесть кучу акцентов, в которых оно именно так и произносится. Другое дело, что «бекап» уже устоялось. А вот «iPad» — только «айпад», и никак иначе!
Не забудьте ещё добавить, что: symmetry ['sɪmətrɪ] — «симметри», а не «симметрия». У нас такое количество слов заимствовано… Вы их все предлагаете на английский манер произносить?
Упрощаем себе жизнь с помощью git/svn
Так и не смог им пользоваться: на больших проектах автокомплит и навигация работают их рук вон плохо, даже с плугинами для всяких *tag. А как colorer для сырцов и фар нормально работает.
У кого есть какие пожелание и идеи на счет плагина под ST2? Хочу что-то написать полезное, но все мои потребности вроде покрыли уже существующие плагины.
Надо бы сделать какой-то wish список, где пользователи могли бы описывать то, что им не хватает в редакторе и что можно реально сделать с помощь plugin API.
Надо бы сделать какой-то wish список, где пользователи могли бы описывать то, что им не хватает в редакторе и что можно реально сделать с помощь plugin API.
Неплохо было бы иметь нормальный ftp клиент. С выводом дерева в сайдбаре. Могу посадействовать, т.к. этого не хватает
Это не линукс-вэй. Не создавая в каждой программе отдельное соединение, можно так: habrahabr.ru/post/148842/#comment_5027707
Вам вроде ответили в том посте. Чем вам не подходит ColorPicker?
Напишите, пожалуйста, плагин, который решит эту задачу.
Очень не хватает бандлов для phpdoc и, к сожалению, времени попробовать сделать самому. Было бы очень полезно. То что есть сейчас только рисует пустой комментарий без автокомплита по @. Хочется такой автокомплит, который будет работать внутри комментария в коде (@author, @param и т.д.) и иметь полный список тегов.
Вторая идея — выводить статус репозитория в проводнике. Т.е. делать svn status и раскрашивать имена папок в нужный цвет (иконки не нужны, только минималистичность, только хардкор).
Еще были какие-то идеи, если вспомню напишу.
Вторая идея — выводить статус репозитория в проводнике. Т.е. делать svn status и раскрашивать имена папок в нужный цвет (иконки не нужны, только минималистичность, только хардкор).
Еще были какие-то идеи, если вспомню напишу.
Хочу посоветовать прекрасный инструмент для сравнения — Beyond Compare.
Аналогов по удобству и мощи я еще не встречал.
Аналогов по удобству и мощи я еще не встречал.
Спасибо, попробую
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
import subprocess
class DiffCommand(sublime_plugin.TextCommand):
def run(self, edit):
cur = num = 0
views = sublime.active_window().views()
for view in views:
if view.id() == sublime.active_window().active_view().id():
cur = num
num += 1
if num-1 != cur:
subprocess.Popen([
'C:\Program Files (x86)\WinMerge\WinMergeU.exe',
views[cur].file_name(),
views[cur+1].file_name()
])
Ну каждому свое, вот обсуждение на StackOverflow
Фигня. Meld лучше.
Фигня ваше высказывание без доказательств.
И что-то я не нахожу Meld под Windows, только какие-то извращения?
И что-то я не нахожу Meld под Windows, только какие-то извращения?
Ну причём здесь доказательства. Вы попользуйте его немножко, и поймёте, что это офигенная вещь. Для начала скриншоты гляньте. А насчёт Windows — видимо, просто покамест не было кому его нормально запакетировать под винды. Займитесь, может? :)
>>Ну причём здесь доказательства.
А при том, что так выражаться как минимум некультурно.
Если Вы считаете, что Meld лучше, то пишите что это Ваше личное мнение:
«Я считаю что Meld лучше», или «Из того, что я пробовал мне больше понравился Meld»
Если Вы считаете, что Meld объективно лучше, то тут уже требуются доказательства.
Вот к примеру список того, чем Beyound Compare лучше:
* Windows support. I'm sure you can get Meld working on Windows, but I doubt it's easy, and our chief free Windows competitor, WinMerge, doesn't support Linux.
* Dedicated output panel for merges. Meld uses the merge-to-center approach, which we don't think is as intuitive as ours. WinMerge doesn't support 3-way comparisons at all.
* Our comparison algorithm can match up similar lines. Pretty much everyone else uses the same algorithm that GNU diff does, which can only do equals/not equals comparisons between lines. You can strip whitespace, or ignore case or a particular regular expression, but that's it. BC actually computes similarity scores for lines, so ones that have had non-trivial changes (renames, added parameters, etc) can be lined up correctly.
* Saved sessions that you can setup and use later. Workspaces containing multiple sessions.
FTP, SFTP, FTP over SSL, including support for multiple simultaneous connections. I know numerous people who use BC as their primary FTP client. Meld may support something like this through Gnome's VFS layer, but it wasn't obvious to me.
* Zip, Tar, GZip, Cab, Rar, 7-zip archives and BCSS snapshots. I don't know of any competitor that has archives files as well integrated as BC does.
* Data compare (grid) for CSV and tab delimited files.
* Hex compare for arbitrary binary files.
* Image compare for most major image formats.
* Replacements in text compare.
* Manual align/isolate in text compare.
* Alignment overrides (replacements) in folder compare.
* Source control integration (Windows only). Adds check-in/check-out/undo checkout support directly to the file and folder viewers. Supports any version control system that integrates into Visual Studio (pretty much all of them). Meld's version control integration is different and won't support as many Windows vcs's.
* Syntax highlighting, and file formats that define importance. A lot of competitors just have a single list of regular expressions that you ignore for all file types, without being able to have different ones for C++ files vs. HTML files.
* Printed/html/plain text differences reports.
* Command line scripting.
* Directory comparison supports excluding files based on their names, paths, sizes, last modified times, attributes, and source control status. This combined with sessions is especially powerful.
* Dedicated sync interface with mirror and update commands.
* Directory compare includes Copy/Move/Delete/Rename/Touch/SetAttributes. Meld, at least, doesn't have much for manipulating directory compares.
* Compares binary DFMs as text (only applicable for Delphi programmers).
* Dedicated support staff available via email, phone, and forums.
www.scootersoftware.com/vbulletin/showthread.php?t=4776
А при том, что так выражаться как минимум некультурно.
Если Вы считаете, что Meld лучше, то пишите что это Ваше личное мнение:
«Я считаю что Meld лучше», или «Из того, что я пробовал мне больше понравился Meld»
Если Вы считаете, что Meld объективно лучше, то тут уже требуются доказательства.
Вот к примеру список того, чем Beyound Compare лучше:
* Windows support. I'm sure you can get Meld working on Windows, but I doubt it's easy, and our chief free Windows competitor, WinMerge, doesn't support Linux.
* Dedicated output panel for merges. Meld uses the merge-to-center approach, which we don't think is as intuitive as ours. WinMerge doesn't support 3-way comparisons at all.
* Our comparison algorithm can match up similar lines. Pretty much everyone else uses the same algorithm that GNU diff does, which can only do equals/not equals comparisons between lines. You can strip whitespace, or ignore case or a particular regular expression, but that's it. BC actually computes similarity scores for lines, so ones that have had non-trivial changes (renames, added parameters, etc) can be lined up correctly.
* Saved sessions that you can setup and use later. Workspaces containing multiple sessions.
FTP, SFTP, FTP over SSL, including support for multiple simultaneous connections. I know numerous people who use BC as their primary FTP client. Meld may support something like this through Gnome's VFS layer, but it wasn't obvious to me.
* Zip, Tar, GZip, Cab, Rar, 7-zip archives and BCSS snapshots. I don't know of any competitor that has archives files as well integrated as BC does.
* Data compare (grid) for CSV and tab delimited files.
* Hex compare for arbitrary binary files.
* Image compare for most major image formats.
* Replacements in text compare.
* Manual align/isolate in text compare.
* Alignment overrides (replacements) in folder compare.
* Source control integration (Windows only). Adds check-in/check-out/undo checkout support directly to the file and folder viewers. Supports any version control system that integrates into Visual Studio (pretty much all of them). Meld's version control integration is different and won't support as many Windows vcs's.
* Syntax highlighting, and file formats that define importance. A lot of competitors just have a single list of regular expressions that you ignore for all file types, without being able to have different ones for C++ files vs. HTML files.
* Printed/html/plain text differences reports.
* Command line scripting.
* Directory comparison supports excluding files based on their names, paths, sizes, last modified times, attributes, and source control status. This combined with sessions is especially powerful.
* Dedicated sync interface with mirror and update commands.
* Directory compare includes Copy/Move/Delete/Rename/Touch/SetAttributes. Meld, at least, doesn't have much for manipulating directory compares.
* Compares binary DFMs as text (only applicable for Delphi programmers).
* Dedicated support staff available via email, phone, and forums.
www.scootersoftware.com/vbulletin/showthread.php?t=4776
Одно это:
разом перечёркивает все те преимущества (многие из которых достаточно спорные, а некоторые просто не имеют места) BC, про которые авторы написали.
* Dedicated output panel for merges. Meld uses the merge-to-center approach, which we don't think is as intuitive as ours. WinMerge doesn't support 3-way comparisons at all.
разом перечёркивает все те преимущества (многие из которых достаточно спорные, а некоторые просто не имеют места) BC, про которые авторы написали.
Мне не нужен спор о том, какой инструмент «Лучший», каждый выбирает лучший инструмент для себя.
Под виндовс есть CodeCompare — самое приятное из того что я видел.
Мне нравится meld, использую его в работе. вот только нехватает фичи типа split diff, как в git add -p. было бы удобно разбить большую разницу на две маленьких, чтобы половину перенести, а половину оставить, например.
Или слить 10 разниц в одну, пусть даже у них есть одинаковые строки. Эх, мечты, мечты.
Split diff я делаю в hg crecord/qcrecord/qcrefresh. Ну не все ханки перебрасываю. В общем, с hg mq средств meldа становится более, чем достаточно.
Вчера появилась потребность чистить код от trailing spaces. Из коробки sublime умеет их чистить при сохранении, а нужно было по запросу.
Вот такой плагинчик получился:
Вот такой плагинчик получился:
import sublime, sublime_plugin
class TrailingSpacesCleanerCommand(sublime_plugin.TextCommand):
def run(self, edit):
ws = self.view.find_all("[\t ]+$")
ws.reverse()
for r in ws:
self.view.erase(edit, r)
Прикинул, что скорее всего это уже реализовано и юзается при
Так и есть. Нашел в Sublime Text 2/Packages/Default/trim_trailing_white_space.py
"trim_trailing_white_space_on_save": true
Так и есть. Нашел в Sublime Text 2/Packages/Default/trim_trailing_white_space.py
class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
def on_pre_save(self, view):
if view.settings().get("trim_trailing_white_space_on_save") == True:
trailing_white_space = view.find_all("[\t ]+$")
trailing_white_space.reverse()
edit = view.begin_edit()
for r in trailing_white_space:
view.erase(edit, r)
view.end_edit(edit)
Я выше написал что оно есть. Но мне это не нужно для всех типов файлов. Я хотел по запросу.
Сможете сделать то же самое, только не по запросу, а когда каретка переставляется в другую строку?
Т.е. вставляем текст или код, в конце которого есть пробел, ставим каретку в любую другую строку — пробелы в конце строк автоматически удаляются.
Такая функция есть в редакторе Rapid PHP, очень удобно было. Сейчас ее не хватает в Саблайме.
Т.е. вставляем текст или код, в конце которого есть пробел, ставим каретку в любую другую строку — пробелы в конце строк автоматически удаляются.
Такая функция есть в редакторе Rapid PHP, очень удобно было. Сейчас ее не хватает в Саблайме.
Есть событие onSelectionModified, но если повесить на него, тогда пробелы в конце строк будут убираться когда просто текст выделяешь.
Т.е. при переставлении каретки никак не сделать?
Вот так сразу не приходит идеи реализации
Вас не затруднит написать пример с событием onSelectionModified?
Какой пример нужен? Обработчик события делаем так:
А дальше все как обычно
import sublime, sublime_plugin
class ExampleOnSelectionModified(sublime_plugin.EventListener):
def on_selection_modified(self, view):
pass
А дальше все как обычно
Пришла идея реализации вашей хотелки. Чистит строку от пробелов, если переставить каретку на другую строку. Если вставлен фрагмент кода, то тоже чистит его весь.
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
class ExampleOnSelectionModified(sublime_plugin.EventListener):
was_selected = False
selection = [0,0]
last_selection = [0,0]
last_line = 0
def on_selection_modified(self, view):
self.selection = [view.sel()[0].begin(), view.sel()[0].end()]
size = abs(self.selection[0] - self.selection[1])
is_selected = size != 0
# Если сейчас нет выделенного фрагмента, а до этого был - чистим его
if not is_selected and self.was_selected:
trailing_white_space = view.find_all("[\t ]+$")
trailing_white_space.reverse()
edit = view.begin_edit()
for r in trailing_white_space:
if r.begin() >= self.last_selection[0] and r.end() <= self.last_selection[1]:
view.erase(edit, r)
view.end_edit(edit)
# Если текст не выделен
elif not is_selected:
last_line = view.line(sublime.Region(self.last_selection[0], self.last_selection[1]))
line = view.line(sublime.Region(self.selection[0], self.selection[1]))
# Проверим переместили ли каретку на другую строку
if last_line != line:
edit = view.begin_edit()
r = view.find("[\t ]+$", last_line.begin())
# Если нашли пробелы, то убираем
if r:
view.erase(edit, r)
view.end_edit(edit)
self.was_selected = is_selected
self.last_selection = self.selection
Обалденно! Огромное вам спасибо! То, что нужно =)
Эх. Обнаружился неприятный момент. Перестают работать умные отступы, когда нажимаешь Enter в конце строки.
Т.е. должно быть так:

а с плагином получается вот так:

Т.е. должно быть так:

а с плагином получается вот так:

Это можно решить, например проверив есть ли в строке что-то кроме отступов и если нет, то не чистить. Позже выложу исправленную версию
Исправил эту проблему и немного улучшил код
Для активации плагина нужно в Preferences User добавить:
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
class TrimTrailingWhiteSpaceOnNewLine(sublime_plugin.EventListener):
was_selected = False
selection = [0,0]
last_selection = [0,0]
def on_selection_modified(self, view):
if view.settings().get("trim_trailing_white_space_on_new_line") == True:
self.selection = [view.sel()[0].begin(), view.sel()[0].end()]
is_selected = not view.sel()[0].empty()
edit = view.begin_edit()
# Если сейчас нет выделенного фрагмента, а до этого был - чистим его
if not is_selected and self.was_selected:
trailing_white_space = view.find_all("[\t ]+$")
trailing_white_space.reverse()
for r in trailing_white_space:
if r.begin() >= self.last_selection[0] and r.end() <= self.last_selection[1]:
view.erase(edit, r)
# Если текст не выделен
elif not is_selected:
last_line = view.line(sublime.Region(self.last_selection[0], self.last_selection[1]))
line = view.line(sublime.Region(self.selection[0], self.selection[1]))
# Проверим переместили ли каретку на другую строку
if last_line != line:
r = view.find("[\t ]+$", last_line.begin())
if r != None and r.end() < line.begin():
view.erase(edit, r)
view.end_edit(edit)
self.was_selected = is_selected
self.last_selection = self.selection
Для активации плагина нужно в Preferences User добавить:
"trim_trailing_white_space_on_new_line": true
Не обещаю, но думаю что можно. Попробую на досуге
Попробовал реализовать, но столкнулся с такой проблемой: каретка возвращется на строку только полсле потери фокуса. Причем номер строки подсвечивается правильно, а каретка остается на месте. Попробую dev сборку, может они там это поправили.
Жаль нельзя свой обработчик на событие клика по номеру строки поставить. И управлять непосредственно кареткой нельзя. Чтобы переместить каретку нужно создавать новый region и добавлять его через view.sel().add
Жаль нельзя свой обработчик на событие клика по номеру строки поставить. И управлять непосредственно кареткой нельзя. Чтобы переместить каретку нужно создавать новый region и добавлять его через view.sel().add
А можно ли его с помощью плагинов скрестить с отладчиком, например GDB?
Тогда получилась бы полноценная среда для многих проектов.
Тогда получилась бы полноценная среда для многих проектов.
SublimeGDB — ставиться пакетным менеджером
… занимаюсь разработкой на php и работаю с множеством проектов одновременно. Так уж повелось, что система контроля версий у нас по множеству причин не прижилась...
омайнгадбл.
всегда косился криво на php-разработчиков… мдаааааааа…
Я не стану вам приводить те множество причин. Замечу, что для своих личных проектов я юзаю git. На работе на тех проектах, где возможно, svn. Не нужно коситься на разработчиков php — они тут не при чем. Проекты бывают разные и для редактирования десятка файлов раз в полгода контроль версий по сути и не нужен — достаточно бэкапов. Чтобы не быть голословным приведу в пример сайт на ModX. Зачем тут контроль версий? Код большей частью в БД, а для картинок оно и ни к чему.
затем что разработчики php тупо не видят всего того, что даёт система контроля версий) И отказываются видеть, глупо объясняя это тем что «такая мощь нам не нужна»
Статья так и не ответила на вопрос чем оно может облегчить жизнь после vim'а или emacs'а. После Eclipse или Geany — да, очевидно.
чем может облегчить мотоцикл жизнь по сравнению с машиной? :)
Скорее болид формулы-1 и спорткар. Понятно что у болидом куда как дольше учиться управлять, он не по всем дорогам поедет, да еще и настройки нужно настраивать какие-то, но то для чего он предназначен (скоростная езда) — он выполняет куда лучше и функциональней, чем спорткар. Впрочем, некоторым достаточно и спорткара, так что это не наезд, а скорее сравнение :)
А такой вопрос и не ставился) Я отношусь к той группе людей, которая не осилила emacs и vim. Остновимся на этом :)
9K+ php файлов в проекте. Уйму времени не трачу (но проект знаю), все ок, использую vim и ctags. На 50-100 файлов как-то непохоже.
Мы пишем на Scala, Java — в команде 10 человек, только 3 пользуются Eclipse и IDEA. Никаких трудностей, поверьте. Исходники в с GutHub в zip-архиве — 2 гигабайта.
Sublime даже упрощает работу, так как легкий, и бегать, по такому количеству файлов совсем без трудностей.
Sublime даже упрощает работу, так как легкий, и бегать, по такому количеству файлов совсем без трудностей.
Имхо. Если ты не можешь держать иерархию кода, над которым работаешь в голове — то кодить у тебя не получится. Более того я считаю, что память надо развивать. Если постоянно полагаться на помощь, то никогда ничего и не запомнишь. И печатать быстро не научишься.
Я когда-то сидел на jedit. Потом переехал на vim, основным толчком стало, что при большом кол-ве серверов он становится слишком удобен. Потом в течении нескольких лет vim у меня постепенно обрастал возможностями и сейчас даст фору любому эклипсу. Но у меня основной упор не на супер-автокомлит, а на удобное и быстрое редактирование и навигацию по файлам.
и ниче, живём =). Вижак на этом объёме требует каких-то чудовищных ресурсов для своей работы. Эклипс кушает 5-6 гб ОЗУ.
Я конечно предположу что я умный, а вы тупой. Но т.к. в это не верю, поэтому и советую обратить внимание на опыт других людей.
Я когда-то сидел на jedit. Потом переехал на vim, основным толчком стало, что при большом кол-ве серверов он становится слишком удобен. Потом в течении нескольких лет vim у меня постепенно обрастал возможностями и сейчас даст фору любому эклипсу. Но у меня основной упор не на супер-автокомлит, а на удобное и быстрое редактирование и навигацию по файлам.
[mocksoul@XXХ ~/svn/trunk]$ svn info | grep Revision
Revision: 849836
[mocksoul@XXX ~/svn/trunk]$ find . -type f -name '*.cpp' | wc -l
14005
[mocksoul@XXX ~/svn/trunk]$ find . -type f -name '*.c' | wc -l
5073
[mocksoul@ХХХ ~/svn/trunk]$ find . -type f -name '*.py' | wc -l
13871
и ниче, живём =). Вижак на этом объёме требует каких-то чудовищных ресурсов для своей работы. Эклипс кушает 5-6 гб ОЗУ.
Я конечно предположу что я умный, а вы тупой. Но т.к. в это не верю, поэтому и советую обратить внимание на опыт других людей.
У Вас сорцы убунты в свн? :D
Хотя не так уж и много… Я вполне справлялся, когда пользовался Geany. Навигация по коду и быстрое редактирование? А в линуксах с навигацией проблем нет. Консоль наше все. И что вы понимаете под быстрым редактированием? Я не верю что у вас в проекте все в одной куче огромной что там никак не соориентируешся) Мне порой и mcedit хватает.
deadlink@deadlink-pc:~/dev/android/cyanogen_mod_racer$ find . -type f -name '*.c' | wc -l
12701
deadlink@deadlink-pc:~/dev/android/cyanogen_mod_racer$ find . -type f -name '*.cpp' | wc -l
7477
deadlink@deadlink-pc:~/dev/android/cyanogen_mod_racer$ find . -type f -name '*.java' | wc -l
17146
У нас тысячи разработчиков =)
А где проверка того что файл записался? :)
Да, редактор впечатляет. Подумываю перелезть с прикипевшего Fraise/Smultron'а.
За материал — спасибо.
За материал — спасибо.
В TextWrangler есть полезная штука Process lines containing..., а как то же сделать с помощью Sublime?
ссылку забыли
Подскажите, а есть ли плагин для перехода к к местам объявления функций/переменных наподобие того как сделано в visual studio?
>Так уж повелось, что система контроля версий у нас по множеству причин не прижилась
Мазохисты?
Мазохисты?
А у кого-нибудь сей редактор не крашился внезапно? Пробовал на него переползти, да что-то пару раз он вылетел и я передумал…
Может какие-то плагины виноваты…
Может какие-то плагины виноваты…
А кто-нибудь нашел как делать индексирование файлов в проекте на C++ и statement completion?
Не подскажите, есть ли полноценный автокомплит (для шарпа)?
А не подскажете как в python можно определить кодировку? Достаточно просто определить utf8 это или нет. Пробовал chardet — но для всех файлов он показывает просто ascii. Хочу плагинчик для себя написать, чтоб при открытии файлов в windows1251 сам открывал их в правильной кодировке. Бывает откроешь файлик, поправишь что нить и сохранишь. И все. Прощай вся кириллица. Не всегда обращаешь внимание на кодировку, особенно если файл большой, а кириллица где-то в конце.
Нашел способ определения uncode. Если учесть что кодировка либо utf8, либо win1251 то больше и не нужно. Но… Комманда reopen почему-то не отрабатывает =( В отладке вижу что определяет верно, но файл в нужной кодировке не открывает. Есть идеи?
# -*- coding: utf-8 -*-
import sublime, sublime_plugin
class AutoEncoding(sublime_plugin.EventListener):
def on_load(self, view):
buf = view.substr(sublime.Region(0, view.size()))
print view.file_name()
try:
unicode(buf)
except Exception, e:
print 'reopen'
print view.run_command("reopen", {'encoding': 'Cyrillic (Windows 1251)'})
else:
print 'unicode'
Sign up to leave a comment.
Упрощаем себе жизнь с помощью Sublime Text 2