Настройки на Sublime за Python 3

  1. Здравейте. Вярвам, че има много почитатели на Sublime Text и предлагам в тази тема да обменяме опит за това кой какви настройки си е правил по Sublime-а за да му е удобно да пише Python. Ще започна аз с "тунинга", който направих тази вечер по моя редактор.

    Настройка за build с Python 3.4 в Sublime Text

    Средата, на която работя е Ubuntu 14.04 и Sublime Text 3. В Ubuntu има built-in версия 3.4 на python, обаче се вика, чрез командата python3. При повикване на командата python се използва версия 2.7.6. Поради тази причина, трябваше да променя build настройките в Sublime за командата която се изпълнява при build-ване (ctrl + b) в sublime да е python3, а не python. За целта направих собствен файл за настройките за build-ване, които се намира в: ~/.config/sublime-text-3/Packages/User/build_tools/Python.sublime-build. След което му зададох следната конфигурация:

    {
       "cmd": ["/usr/bin/python3", "$file"],
       "selector": "source.python",
       "file_regex": "file \"(...*?)\", line ([0-9]+)"
    }
    

    Това презаписва build настройките, като cmd оказва коя команда да се вика при build-ване, $file е конкретния файл, който трябва да се изпълни.

    За справка дали сте на коректната версия, може да изпълните следния код:

    import platform
    print(platform.python_version())
    

    Настройки за работа с Python файлове

    На лекцията се спомена, че конвенцията за идентацията в Python е 4 space-а, за това сложих настройки, които да изпълняват конвенцията при работа с Python файлове и добавих няколко други настройки по собствен вкус. Файла за конфигурациите ми се намира в ~/.config/sublime-text-3/Packages/User/Python.sublime-settings и съдържа:

    {
        "tab_size": 4,
        "translate_tabs_to_spaces": true,
        "rulers": [72, 79],
        "word_wrap": true,
        "wrap_width": 80,
        "wide_caret": true
    }
    

    където tab_size определя колко интервала да е дълга табулацията, translate_tabs_to_spaces оказва, да се използват spaces вместо табове, word_wrap определя дали да минава на нов ред, като се стигне в края на екрана rulers е настройка за вертикални линии в редактора, wrap_width указва колко да бъде дълъг екрана, wide_caret за по-дебел курсор

    Това са настройките, който направих. Някой ако си е правил други допълнителни настройки може да ги сподели.

    Cheers! :wink:

  2. Супер. Такива неща винаги са полезни. Имам обаче притеснения с този word_wrap. Може да ви ухапе лошо, ако работи така както ми се струва.

    Ще показва, че няма ред по-дълъг от 79 символа (тъй като ще го разцепва на два), но всъщност във файла ще се запише такъв. Това не искате да го правите.

    @Явор, правилно ли съм разбрал държанието на wrap в Sublime?

  3. Нещото, което много ме радва в Sublime, са плъгините. Относно pep8 намерих този линтър, който е много полезен, ако нямаш желание да ровиш из style guide-а за най-малкото нещо. Има и други подобни, но този май е най-новият и поддържан, а и става както за Sublime 3, така и за 2 :)

  4. @Кирил не се бях замислил. Всъщност, точно това прави - в sublime минава на нов ред, а като го отворя във vim всичко е на един ред. Аз тази настройка я слагам за да не се изкушавам да пиша дълги редове с код, но мисля че ruler-ите са достатъчна граница. Мерси :)

    @Екатерина, @Александър благодаря, това определно ще е от полза. Ще ги пробва и двата linter-а :)

Трябва да сте влезли в системата, за да може да отговаряте на теми.