| Author: Eduardo Enriquez

Configurar Sublime Text para Python ( Setting up Sublime Text 3 for Python Development)

驴Qu茅 elegir para programar en Python? 驴Por qu茅 Sublime y no otro?

He pasado por varios editores y creo que uno de mis editores favoritos es Sublime Text porque es r谩pido, liviano y recontra configurable. Pero como todo, no es perfecto, y el problema que tiene es, en comparaci贸n con Pycharm por ejemplo, no poseer una debugger que permita navegar el codigo con breakpoints adentro de sublime (de todos modos si alguno ha logrado algo al respecto no dude en decirmelo!).

De todas formas, para sacarle el jugo a Sublime Text 3 hay que configurarlo y esto lleva unos diferentes pasos de acuerdo al lenguaje en que uno va a programar. En nuestro caso, vamos a mostrar c贸mo configura sublime text 3 para un python developer. As铆 que vamos paso a paso desde su instalaci贸n:

  • Primer paso - Instalaci贸n:

En ubuntu, linux mint, debian:

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt update
sudo apt install sublime-text-installer

(todo lo que venga de http://www.webupd8.org/ es relativamente confiable)

En windows simplemente hay que bajar el exe de: https://www.sublimetext.com/3

  • Segundo paso - Package Control

Para sacarle lo m谩ximo a Sublime hay que instalarle un control de paquetes. Este sirve para poder instalarle a Sublime pluggins de terceros, que nos van agregar nuevas funcionalidades. Algunos pluggins son muy buenos, algunos no y otros son muy especificos para un lenguaje, pero bueno hay que ir probandolos.

Para instalar el Package Control se puede hacer de dos formas:

1) Pegando el c贸digo del packagecontrol en la consola de sublime. Para obtener el c贸digo ir a: https://packagecontrol.io/installation Y para abrir la consola hay que ir a vista / view --> show console / mostrar consola.

Y en el recuadro pegar las lineas siguientes (para sublime text 3):

import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

2) Otra opcion en versiones mas nuevas es directamente desde el menu encontrar la opcion de instalar package control.

  • Tercer paso - Instalar pluggins

Cada vez que queramos abrir el manejo de paquetes (package control) debemos teclear Ctrl + shift + p. Con esta combinacion de teclas se abre un men煤 donde podemos escribir "install" y va a ir autocompletando... as铆 buscamos la opcion que dice聽 "Package Control: Install package", le damos enter y luego escribimos el nombre del paquete a instalar.

  • SideBarEnhancements: este pluggin agrega funcionalidades a la barra del costado que permite desplazarse por el 谩rbol de directorios. Brinda opciones para duplicar archivos, crear nuevos, renombrarlos, copiarlos, moverlos, etc. (https://sublime.wbond.net/packages/SideBarEnhancements

  • GitGutter: este pluggin muestra peque帽os iconos al costado del n煤mero de linea que indica si la linea fue borrada, agregada, modificada desde el 煤ltimo commit (sublime.wbond.net/packages/GitGutter)

  • Anaconda es EL pluggin para python en Sublime. Ofrece autocompletado, linting (highlights both syntax errors and PEP8 violations), Python documentation, McCabe complexity checker, go to definition, etc. (damnwidget.github.io/anaconda/)

  • BracketHighlighter es sencillo, te marca si un parentesis, llave, comilla esta abierta y o marca el de apertura y cierre al mismo tiempo (packagecontrol.io/packages/BracketHighlighter)

  • Djaneiro para desarrollar con django

  • Despu茅s hay una lista enorme para diversas cosas, por ejemplo requirementstxt (para coloreado de lo requirements de python), INI (para coloreado de los .ini), mononkai extended (para darle colores nuevos a sublime), sublimegit (blame, log, diff, etc), sublimeLinter-json, etc.

  • Cuarto Paso - Configuraci贸n de sintaxis especifica
Bueno por 煤ltimo sublime permite una configuraci贸n de sintaxis espec铆fica para cada lenguaje. Para python, o en el caso en que hayan instalado Djaneiro, django, mi archivo de configuraci贸n, mi sintax specific es el siguiente:
{
    "font_face": "Ubuntu Mono",
    "font_options": ["subpixel_antialias", "no_bold"],
    "line_padding_bottom": 1,
    "line_padding_top": 1,
    "caret_style": "solid",
    "wide_caret": true,
    "highlight_line":  true,
    "always_show_minimap_viewport": true,
    "bold_folder_labels": true,
    "draw_minimap_border": true,
    "enable_telemetry": false,
    "indent_guide_options": [
        "draw_active",
        "draw_normal"
    ],
    // Editor view look-and-feel
    "draw_white_space": "all",
    "highlight_line": true,
    "show_full_path": true,
    "match_selection": true,

    // Editor behavior
    "scroll_past_end": false,
    "highlight_modified_tabs": true,
    "find_selected_text": true,

    // Word wrapping - follow PEP 8 recommendations
    "rulers": [ 72, 79, 100],
    "word_wrap": false,
    "indent_to_bracket": true,

    // Whitespace - no tabs, trimming, end files with \n
    "preview_on_click": false,
    "shift_tab_unindent": true,
    "show_panel_on_build": false,
    "tab_size": 4,
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "ensure_newline_at_eof_on_save": true,
    "auto_complete_delay": 500,


    // Sidebar - exclude distracting files and folders
    "file_exclude_patterns":
    [
        ".DS_Store",
        "*.pid",
        "*.pyc"
    ],
    "folder_exclude_patterns":
    [
        ".git",
        "__pycache__",
        "env",
        "env3",
        ".svn",
        ".DS_Store",
    ]
}

Escribi otros posts sobre sublime text 3 y su configuraci贸n.聽

*聽Algunos plugins copados para js y python

*聽Configurar atajos

(si encontr谩s algo mal o algo que le falta al post, avisame!)


Algunos links 煤tiles de ayuda e inspiraci贸n:

https://opensourcehacker.com/2012/05/11/sublime-text-2-tips-for-python-and-web-developers/

http://www.gtlambert.com/blog/python-sublime-text-3

https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/

http://piotr.banaszkiewicz.org/blog/2013/08/24/sublime-text-3-for-python-development/

Related Posts