Sam & Max » sublime text http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Le don du mois : sublime text 13 http://sametmax.com/le-don-du-mois-sublime-text/ http://sametmax.com/le-don-du-mois-sublime-text/#comments Sat, 04 Jul 2015 12:20:01 +0000 http://sametmax.com/?p=16562 Se faire plaisir et faire plaisir aux autres n’est pas incompatible.

Par exemple, quand Sublime Text est sorti j’ai pris un an avant d’acheter la licence. Là, j’ai sublime text 3 depuis à peu près la même période sur mon ordi, et je vais me payer la licence.

Pour moi, c’est une forme de don. En effet, l’auteur permet d’utiliser 100% de son logiciel pour toujours, et sans rien raquer. La seule chose, c’est que toutes les X sauvegardes, une pop up apparaît pour vous demander si vous voulez l’acheter. Vous pouvez ne jamais le faire. Beaucoup ne le font jamais.

Aujourd’hui, je vais faire sauter la pop up, et je remercie l’auteur pour me fournir un joujou que j’adore.

N’oubliez pas, si vous utilisez un IDE commercial (PyCharm, Komodo, etc), acheter la licence vous apporte des choses à vous, mais aussi, est un bon moyen de témoigner votre reconnaissance aux auteurs. Après tout, vous gagnez votre vie en partie grace à eux.

Si votre éditeur est gratuit, voire libre (je pense aux trolls de VI et Emacs qui frétillent dans les commentaires), pensez à faire un don à ces projets. Le fait qu’ils soient bien établis ne veut pas dire qu’il n’en ont pas besoin, bien au contraire.

Sublime n’est pas donné, et je paie de ma poche 70$, avec plaisir néanmoins, car cet outil les vaut largement.

Bref, la morale de ce mois, c’est que les donations ne sont pas uniquement pour les groupes à but non lucratif. Vous pouvez donnez à des boîtes, des administrations, des clodos dans la rue. Vous pouvez racheter un livre que vous avez déjà lu, offrir un morceau que vous avez déjà écouté. Le don n’a pas de forme propre, la seule condition étant l’intention.

]]>
http://sametmax.com/le-don-du-mois-sublime-text/feed/ 13
Wrap in Try / Except dans Sublime Text 13 http://sametmax.com/wrap-in-try-except-dans-sublime-text/ http://sametmax.com/wrap-in-try-except-dans-sublime-text/#comments Thu, 20 Feb 2014 22:57:40 +0000 http://sametmax.com/?p=9210 Très souvent il m’arrive de vouloir mettre un bout de mon code dans un blog try / except, et il faut couper le bloc de code, ecrire le try/except, coller le code, puis re-indenter au besoin.

C’est con, on a un éditeur pour faire le taff pour nous et d’ailleurs, PyDev le fait très bien. Soyons fainéant.

On va se rajouter une petit snippet qui permet de faire ça automatiquement. Il faut ouvrir le menu Tools > new snippet et un peu de xeumeuleu dedans :

<snippet>
<content><![CDATA[
${SELECTION/^( *)([^ ].*)/$1/g}try:
${SELECTION/(^ *|\n *)/$1    /g}
${SELECTION/^( *)([^ ].*)/$1/g}except ${1:Exception as e}:
    ${SELECTION/^( *)([^ ].*)/$1/g}${2:import ipdb; ipdb.set_trace()}
]]></content>
    <scope>source.python</scope>
    <description>Wrap in Try/Except</description>
</snippet>

Ca récupère la selection, place le try/except, replace la sélection et reindente grâce à une regex. Et seulement si le fichier est du code Python. Joie.

On sauvegarde ça sous un nom clair genre “wrap_in_try_except.sublime-snippet”.

Puis on fait un petit tour dans Préférence > Key Bindings – User et on se rajoute un raccourci clavier pour profiter de notre nouveau joujou :

      { "keys": ["ctrl+shift+y"], "command": "insert_snippet", "args": {"name": "Packages/User/wrap_in_try_except.sublime-snippet"} }

Et voilà :

ligne_qui_pouet

Devient, après selection et un petit ctrl + shift + y :

try:
    ligne_qui_pouet
except Exception as e:
    import ipdb; ipdb.set_trace()

On peut tabuler entre la définition de l’exception à catcher et le contenu du block except pour les changer au besoin rapidement.

Par contre, ça ne marche que si on indente avec des espaces. Mais ceux qui utilisent des tabs pour indenter ne méritent pas qu’on les aide de toute façon (si c’est votre cas, quittez ce site, tout de suite, houste !).

]]>
http://sametmax.com/wrap-in-try-except-dans-sublime-text/feed/ 13
Et pour quelques astuces de plus 31 http://sametmax.com/et-pour-quelques-astuces-de-plus/ http://sametmax.com/et-pour-quelques-astuces-de-plus/#comments Fri, 14 Feb 2014 17:00:16 +0000 http://sametmax.com/?p=9143 Sublime Text n’en fini pas d’être sublime.

Depuis le dernier article, j’ai découvert d’autres trucs super géniaux.

Echanger deux selections

Ctrl + T.

Selection en colonne

Shift + Clic droit.

Selection similaires

Ctrl + D

Attention, ça ne marche pas quand le champ “recherche” est activé.

Déplacer une ligne

Shift + Ctrl + Flèche haut ou bas.

Supprimer une ligne

Ctrl + k deux fois pour supprimer la ligne après le curseur. On rajoute shift pour supprimer la ligne complete.

Je suppose que sous Mac plein de raccourcis sont différents avec des touches commandes à la place du shift et autre…

]]>
http://sametmax.com/et-pour-quelques-astuces-de-plus/feed/ 31
WARNING: File not found. Did you forget to save? 1 http://sametmax.com/warning-file-not-found-did-you-forget-to-save/ http://sametmax.com/warning-file-not-found-did-you-forget-to-save/#comments Sat, 26 Oct 2013 07:58:23 +0000 http://sametmax.com/?p=7541 rapporter ce problème quand il utilisait la commande magique %edit dans IPython avec Sublime Text.]]> Un lecteur nous a rapporté ce problème quand il utilisait la commande magique %edit dans IPython avec Sublime Text.

Magie d’internet, un autre lecteur lui a répondu en comment, mais je me dis que donner un peu de visibilité à la réponse peut pas faire de mal, vu que je n’ai pas trouvé facilement la solution via Google DuckDuckGo.

L’idée est tout simplement d’utiliser l’option -w dans la ligne de commande pour appeler l’éditeur. En effet, sans cela l’appel à ST est non bloquant, et IPython perd la référence au processus sans avoir de valeur de retour.

Par exemple, dans votre ipython_config.py :

c.TerminalInteractiveShell.editor = "sublime_text -w"
]]>
http://sametmax.com/warning-file-not-found-did-you-forget-to-save/feed/ 1
Éviter que Sublime Text n’écrase les parenthèses fermantes 12 http://sametmax.com/eviter-que-sublime-text-necrase-les-parentheses-fermantes/ http://sametmax.com/eviter-que-sublime-text-necrase-les-parentheses-fermantes/#comments Wed, 14 Aug 2013 18:41:04 +0000 http://sametmax.com/?p=7103 ] voir }) juste à côté d'une AUTRE parenthèse fermante, le comportement de Sublime Text par défaut est de ne pas ajouter de parenthèse, mais d'avancer d'un caractère. Je déteste cette fonctionnalité. Heureusement, comme tout dans cet éditeur qu'il est merveilleux, c'est désactivable. ]]> [one_third_last]Quand on tape une parenthèse fermante (ou ] voire }) juste à côté d’une AUTRE parenthèse fermante, le comportement de Sublime Text par défaut est de ne pas ajouter de parenthèse, mais d’avancer d’un caractère.

La raison est que Sublime ferme automatiquement toute parenthèse ouverte, cette fonctionnalité est donc là pour vous éviter de taper une parenthèse fermante de trop.

Je déteste cette fonctionnalité.

Je suis assez grand pour savoir quand insérer ma parenthèse ou non, et je n’ai pas Parkinson.

Heureusement, comme tout dans cet éditeur qu’il est merveilleux, c’est désactivable. Ouvrez “Preferences > Key Bindings – User” et ajoutez ceci à la configuration :

    { "keys": ["\""], "command": "insert", "args": {"characters": "\""}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true }
        ]
    },
    { "keys": [")"], "command": "insert", "args": {"characters": ")"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
        ]
    },
    { "keys": ["'"], "command": "insert", "args": {"characters": "'"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true }
        ]
    },
    { "keys": ["]"],"command": "insert", "args": {"characters": "]"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
        ]
    },
    { "keys": ["}"], "command": "insert", "args": {"characters": "}"}, "context":
        [
            { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
    }

Abracadabra !

]]>
http://sametmax.com/eviter-que-sublime-text-necrase-les-parentheses-fermantes/feed/ 12
Liste des plugins sublime text que j’utilise 41 http://sametmax.com/liste-des-plugins-sublime-text-que-jutilise/ http://sametmax.com/liste-des-plugins-sublime-text-que-jutilise/#comments Tue, 30 Apr 2013 06:34:56 +0000 http://sametmax.com/?p=5927 Ils sont tous installable via Package Control.

Les paquets de syntaxe supplémentaires

D’abord, j’ai ajouté le support de syntaxe et de snippets pour des fichiers / langages qui ne sont pas pris en compte par défaut.

  • ApacheConf: coloration des fichiers de config apache.
  • CoffeeScript: coloration pour le langage coffeescript.
  • jQuery: coloration pour la lib jQuery.
  • jQuery Snippets pack: snippets pour jQuery.
  • HTML5: coloration et snippets pour HTML5.
  • LESS: coloration pour lesscss.
  • Djaneiro: coloration et snippet pour django, y compris les templates.
  • nginx: coloration pour les fichiers de confi nginx.
  • INI: coloration pour les fichiers INI.

Et en prime le pack de langue ‘Language – French’, pour corriger mon orthographe française.

En plus de ça, il y a…

Alignment

Permet de réaligner des lignes avec Ctrl + Alt + A.

Color Highlighter

Pour éviter de se demander à quelle couleur correspond ce code hexa dans le css.

ColorPicker

Changez les valeurs des couleurs en CSS depuis un picker graphique.

Le gif rend mal, en vrai la roue de couleurs est parfaite.

DuplicateSelections

S’interface directement sur le copier / coller. Si vous copiez plusieurs sélections et que vous collez vers plusieurs curseurs de même nombre, cela insère chaque sélection respectivement dans chaque curseur, au lieu d’insérer un vrac de toutes les sélections en même temps dans chacun des curseurs.

Edit History

Tellement utile que c’est intégré dans ST3 d’origine : cela permet de faire back et forward comme sur un navigateur Web. Chaque fois qu’on édite une ligne, ça rajoute une entrée dans l’historique, et on peut y revenir plus tard. Fantastique pour naviguer dans les gros fichiers

Expand Selection to Quotes

Je sais pas pour vous mais moi, sélectionner une chaîne à la main, ça me fait chieerrrrrrrrrrr. Cette sélection permet, avec une seconde combinaison de touches, de sélectionner les quotes.

Format SQL

Je l’utilise pas souvent, mais je suis feinéant.

GitGutter

Une nouvelle addition, un truc qui rassure. Ça affiche le diff des modifications faites au fichier par rapport à la dernière copie dans Git.

IncDecValue

Ajouter quelques points à une valeur ? Pas besoin de sélectionner la bonne partie et tout réécrire.

Oddly

Sélectionner une ligne sur deux ou sur 3.

SublimeLinter

Entour d’une bordure blanche les erreurs en Python (et JS) telles que imports inutilisés, variables non déclarées et syntaxe errors.

SublimeMRU

Annuler la fermeture d’un fichier fermé, comme un tab sur le navigateur Web.

SublimeOnSaveBuild

Lance la commande build configurée pour ce fichier au moment où on save.

ToggleQuotes

Transformer ‘”‘ en “‘” et inversement.

Wrap Plus

Je ne sais pas comment j’ai vécu avant ce plugin. Wrap les comments, les string (incluant les docstrings) pour se limiter à n caractères. Automatiquement. C’est beau.

]]>
http://sametmax.com/liste-des-plugins-sublime-text-que-jutilise/feed/ 41
Vi vs Emacs vs Sublime Text http://sametmax.com/vi-vs-emacs-vs-sublime-text/ http://sametmax.com/vi-vs-emacs-vs-sublime-text/#comments Fri, 28 Sep 2012 14:31:05 +0000 http://sametmax.com/?p=2321 Sublime Text est mieux. Point final.

J’ai fermé les commentaires, ils ne servent à rien puisque j’ai raison.

]]>
http://sametmax.com/vi-vs-emacs-vs-sublime-text/feed/ 0
10 astuces pour Sublime Text 2 41 http://sametmax.com/10-astuces-pour-sublime-text-2/ http://sametmax.com/10-astuces-pour-sublime-text-2/#comments Sat, 26 May 2012 00:31:45 +0000 http://sametmax.com/?p=744 J’ai essayé Komodo, (Py)Eclipse, Ullipad, Jedit, Gedit, Vi, Emacs, Notepad++, Scite, NetBean, Kate, PSPad, Leafpad, et bien d’autres. Aucun n’arrivent à la cheville de Sublime-Text 2, sorte de TextMate multiplateforme boosté aux steroïdes et léger comme une plume.

Voici 10 trucs qui vous inciterons à payer la licence de ce merveilleux joujou.

(les raccourcis clavier sont à adapter selon votre OS, vu que je suis sous nunux)

Ctrl + Shift + L

Selectionnez plusieures lignes, et entrez Ctrl + Shift + L. La selection multiple s’active, et vous vous retrouvez avec un curseur au début de chaque ligne, tous synchronisés ! Hyper pratique pour créer un tuple, reindenter une liste, etc

Split et Clone

Dans le menu View > Layout, on peut diviser l’écran en plusieurs parties et bouger des onglets de l’une à l’autre par glissé/déposé. Idéal pour travailler sur le HTML et le CSS en même parallèle.

Cette fonction est combinable avec File > New view into file qui ouvre un second onglet sur le même fichier. Du coup, vous pouvez éditer plusieurs parties du même fichier sans scroller dans tous les sens.

Ctrl + Shift + P

Et entrez n’importe quel item d’un des menus. La commande s’éxécute.

Par exemple entrer Ctrl + Shift + P puis taper swap fait apparaitre l’entrée du menu Edit > Convert Case > Swap case. Une manière très intuitive de retrouve une feature dont on a oublié la position dans un des sous-sous-sous menus.

Package Controle

Un plugin qui permet d’installer des centaines d’autres plugins en une commande, comme un gestionnaire de paquet.

Installation en 30 secondes.

Tous les autres plugins présentés ici sont intallables avec celui-ci.

Sublime Linter

Plugin qui surligne les erreurs dans le code Python, comme les imports inutilisés ou les variables non déclarées. Fait économiser pas mal de cycles de save/run.

Edit History

Un fichier de 500 lignes. Vous éditez les ligne 153. Vous allez à la ligne 266. Vous voulez retourner à la dernière zone d’édition ? Au lieu de scroller ou de mettre un bookmark, installez ce plugin, il permet de naviguer dans l’historique des éditions comme avec un navigateur Web.

Aller à la ligne

En parlant de ligne, Ctrl + P + : (deux points) permet d’aller à la ligne où on veut sans bouger les mains du clavier.

Barre de status

La barre de status est cliquable en bas à droite. On peut rapidement changer l’indentation et le type de fichier, et même convertir les tabs en espaces et inversement

F7

F7 lance le builder par défaut pour l’extension de fichier en court. Pour un fichier python, ça lance python votre_script.py et affiche le résultat. On peut créer ses propres builders et les ramapper sur F7 dans Tools > Build System.

Ne sauvegardez pas votre fichier

Et fermez Sublime-Text. Rouvrez-le: votre travail n’est pas perdu. Sublime-Text sauvegarde automatiquement vos modifications, sans pour autant alterer le fichier en cours d’édition si vous n’avez pas sauvegardé. Il garde même l’historique d’édition pour permettre Ctrl + Z.

?

Mais comment l’unique dev de sublime text fait-il pour rendre son éditeur si rapide tout en incluant cette orgie de features ?

En tout cas le mecs à tout compris: un produit de qualité, une période d’essai illimitée et sans bridage. Et j’ai payé. Et je l’ai montré à tous mes collègues. Et 3 ont payé. Chapeau

]]>
http://sametmax.com/10-astuces-pour-sublime-text-2/feed/ 41
Retour à la ligne sur Sublime Text 2 (word wrap) 11 http://sametmax.com/retour-a-la-ligne-sur-sublime-text-2-word-wrap/ http://sametmax.com/retour-a-la-ligne-sur-sublime-text-2-word-wrap/#comments Tue, 17 Apr 2012 16:13:20 +0000 http://sametmax.com/?p=407 Des fois lorsqu’on a des lignes trop longues on se retrouve avec une barre de scrolling horizontale sur Sublime.
Pas toujours pratique à lire ni à éditer. On peut dire à Sublime de retourner à la ligne lorsque cette dernière est plus longue que la largeur de votre espace de travail.

Pour ce faire on utilise word wrap

Allez dans les préférences > Settings User et rajoutez cette ligne:

Par exemple:

{
	"font_size": 11.0
}

donnera:

{
	"font_size": 11.0,
	"word_wrap": true
}

Relancez Sublime pour que les changements soient pris en compte.

]]>
http://sametmax.com/retour-a-la-ligne-sur-sublime-text-2-word-wrap/feed/ 11