====== Sublime Text 3 ======
http://www.sublimetext.com/
===== Présentation =====
http://www.blogoergosum.com/29872-sublime-text-2-zen-coding-w00t
Pour synchroniser ses paquets => https://packagecontrol.io/docs/syncing
===== Documentation =====
La doc officiel => http://www.sublimetext.com/docs/3/
La doc non officiel => http://docs.sublimetext.info/en/latest/index.html
===== Plugins =====
En 1er vous devez installer le package control => https://sublime.wbond.net/installation#st3
Liste de tous les plugins => http://wbond.net/sublime_packages/community
Liste de 33 plugins => http://aslanbakan.com/en/blog/33-essential-sublime-text-plugins-for-all-developers/
==== AutoFileName ====
> https://packagecontrol.io/packages/AutoFileName
> Lorsque vous devez remplir une propriété représentant un chemin vers un fichier (ex:
en pratique c'est plutot plus envahissant qu'autre chose.
==== Bracket Highlighter ====
> https://github.com/facelessuser/BracketHighlighter
> Rajoute des icones dans la marge de gauche afin de voir la portion de code inclue entre des () {} etc.. et indique si il manque une fermeture.
==== Valign ====
> https://github.com/jlong64/sublime_valign
> Permet d'aligner verticalement votre code pour plus de lisibilité dans la déclaration de variable, array etc..
> Ajouter cette ligne dans votre config de raccourci car par défaut le raccourci **Ctrl+\** n'est pas possible pour nos clavier azerty.
{ "keys": ["ctrl+alt+a"], "command": "valign" },
==== Color Picker====
> http://weslly.github.io/ColorPicker/
> Faites **ctrl+shift+c** et une fenêtre vous permettra de choisir une choisir afin de vous donner le code html.
==== Color Highlighter====
> https://github.com/Monnoroch/ColorHighlighter
> Affiche la couleur d'un code couleur HTML lorsque le curseur se positionne sur celui-ci
==== Highlighter====
> https://github.com/bluegray/Highlighter
> Affiche en rouge tous les caractères spéciaux mal placé, ou alors des tab et espace au mauvais endroit pour une indentation parfaite ;)
==== FileDiffs ====
> https://github.com/spape/SublimeFileDiffs
> Permet de comparer 2 fichiers
==== php syntax checker ====
> https://github.com/naomichi-y/php_syntax_checker
> Nous avertit d'une erreur de syntax php lorsque l'on enregistre le fichier
==== inc_dec_value ====
> https://packagecontrol.io/packages/Inc-Dec-Value
> Permet d'incrémenter/décrémenter n'importe quelle valeur avec la roulette ou avec Alt+haut/bas
> Fonctionne avec les codes couleurs, les dates, les true en false (et inversement)
> sur un texte => string => String => STRING
> en pratique, jamais utilisé
==== Javascript and JQuery API Completions ====
> https://github.com/Pleasurazy/Sublime-JavaScript-API-Completions
> Permet d'autocompléter du javascript et du jquery
https://tutsplus.com/lesson/docblockr/
https://tutsplus.com/lesson/emmet/
https://tutsplus.com/lesson/pretty-task-management/
==== Laravel ====
> Blade Snippets
> Laravel Blade Highlighter
==== Increment Selection ====
Très utile quand on fait du copier/coller avec des ID que l'on doit incrémenter à la main, exemple :
if($toto='A-1')
return 'tata';
if($toto='A-1')
return 'tata';
if($toto='A-1')
return 'tata';
On sélectionne le 1, on fait Ctrl+Alt+i et on obtient
if($toto='A-1')
return 'tata';
if($toto='A-2')
return 'tata';
if($toto='A-3')
return 'tata';
+ d'info => https://github.com/yulanggong/IncrementSelection
==== SideBarEnhancements ====
> https://packagecontrol.io/packages/SideBarEnhancements
> Indispensable pour avoir un menu contextuel plus riche lors d'un clic droit sur un fichier/dossier de la sidebar
Le paquet ne semble plus dispo dans les dépôts officiel. Pour le rajouter :
* Ctrl+Maj+P
* Package control : Add repository
* Copier/coller : https://github.com/titoBouzout/SideBarEnhancements/tree/st3
* Ctrl+Maj+P
* Package control : Install package
* Rechercher : SideBarEnhancements
Entre temps il semble être dispo de nouveau.
==== PHP Companion ====
> https://github.com/erichard/SublimePHPCompanion
> Très pratique quand on code avec des namespaces, permet de déclarer une class dans les "Use", de trouver le FQCN d'une classe et d'autre petite bricole
===== Personalisez, customisez Sublime Text =====
==== Thème ====
https://packagecontrol.io/browse/labels/theme
Les thèmes permettent de changer la couleur de l'interface de sublime text ainsi que l'apparence des boutons, onglets etc...
Un plugin permet de switcher facilement entre les thèmes
=> https://packagecontrol.io/packages/Themes%20Menu%20Switcher
J'aime particulièrement le thème **afterglow** qui fait ce que je veux et est paramètrable :)
https://github.com/YabataDesign/afterglow-theme
==== Color Scheme ====
Les **Color Scheme** sont des thèmes uniquement de la partie éditeur de sublime text, ça concerne donc la colorisation syntaxique mais pas la sidebar, les boutons, les tabs contrairement aux **Theme**
Créer votre propre "color scheme" sur le site http://tmtheme-editor.herokuapp.com/
===== Config =====
Voici mon fichier de config personnel. Pour modifier le votre, allez dans le menu **Preferences / Settings - User** et copier/coller le texte ci-dessous.
{
"always_show_minimap_viewport": true,
"auto_complete_commit_on_tab": true,
"color_scheme": "Packages/Color Scheme - Default/Twilight.tmTheme",
"highlight_modified_tabs": true,
"ignored_packages":
[
"Vintage"
],
"tab_size": 4,
"word_wrap": true,
"auto_complete_triggers":
[
{
"characters": "<>\"'-_qazwsxedcrfvtgbyhnujmikolpQAZWSXEDCRFVTGBYHNUJMIKOLP",
"selector": "text, source, meta, string, punctuation, constant"
}
],
"line_padding_bottom": 1,
"line_padding_top": 1,
"mouse_wheel_switches_tabs": false,
"overlay_scroll_bars": "enabled",
"scroll_speed": 0.4,
"show_encoding": true,
"show_line_endings": true,
"sidebar_row_padding_small": true,
"sidebar_size_12": true,
"sidebar_size_13": false,
"sidebar_size_14": false,
"status_bar_brighter": true,
"tab_size": 4,
"tabs_padding_medium": true,
"tabs_small": true,
"theme": "Afterglow.sublime-theme",
"word_wrap": true,
}
===== Raccourcis clavier =====
> **Ctrl+p**
> Lance une recherche de fichier
> **Ctrl+shift+p**
> Permet de lancer une fonction, d'installer un package etc..
> **Ctrl+r**
> Liste les fonctions du script en cours
> **Ctrl+shift+r**
> Liste les fonctions de plusieurs fichiers
> **Ctrl+;**
> Liste certains mots du scripts
> **Ctrl+d**
>Permet de sélectionner tout le mot qui entour le curseur.
>Lorsque qu'un mot est sélectionné, il permet de sélectionner le prochain mot identique.
>Si vous allez trop loin, utilisez **Ctrl+u** pour annuler la dernière sélection
> **Ctrl+:** ou **Ctrl+shift+:**
>Permet de commenter une ligne ou un bloc de ligne
> **Ctrl+maj+d**
>Permet de dupliquer la ligne
> **Ctrl+maj+k**
>Permet de supprimer la ligne
> **Alt+maj+w**
>Lorsque vous sélectionnez du code, ce raccourci ajoutera une balise tout au tour de la sélection
> **Alt+F3**
>Permet de sélectionner le tag de fin si le curseur est positionné sur un tag HTML
===== Raccourcis souris =====
Si vous avez les boutons "précédent/suivant" sur votre souris, cela permet de naviguer dans vos onglets de gauche à droite.
Pour personnaliser l'action de ces boutons, créez le fichier suivant
~/.config/sublime-text-3/Packages/User/Default (Linux).sublime-mousemap
et inspirez-vous de ce code qui remplace l'action par défaut par le jump back / forward. Inspirez-vous de la config de key binding pour les autres commandes
[
{ "button": "button8", "command": "jump_back" },
{ "button": "button9", "command": "jump_forward" }
]
Autre exemple pour faire comme avec Ctrl+tab
[
{ "button": "button8", "command": "next_view_in_stack" },
{ "button": "button9", "command": "prev_view_in_stack" }
]
===== Sélection vertical ou en colonne =====
Utiliser la souris pour faire une sélection de texte via un rectangle.
==== OS X ====
Left Mouse Button + Option\\
OR: Middle Mouse Button\\
Add to selection: Command\\
Subtract from selection: Command+Shift\\
==== Windows ====
Right Mouse Button + Shift\\
OR: Middle Mouse Button\\
Add to selection: Ctrl\\
Subtract from selection: Alt\
==== Linux ====
Right Mouse Button + Shift\\
Add to selection: Ctrl\\
Subtract from selection: Alt\\
===== Remplacer du texte =====
==== Expression régulière ====
Sublime Text utilise la norme suivante pour les expressions régulières http://www.boost.org/doc/libs/1_47_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
Dans mon cas, j'avais un fichier html avec des liens qui comportaient des tabulations dans l'attribut href.
Ex: EDMC73
Et bien évidemment, je veux enlever ces tabulations.
Ouvrez la commande **remplacer** ( Ctrl+H )\\
Sélectionnez le 1er icone pour activer les expressions régulières ( regular expression )\\
Entrez ceci dans le champ Find What
href="[[:space:]]*([^"[:space:]]*)[[:space:]]*"
Et ceci dans le champ Replace With
href="\1"
Explication : Je cherche dans chaque ligne l'élément **href="** suivi par n'importe quel type d'espace (inclu les tabulations) avec **[**[:space:]**]**. L'étoile signifie qu'il peut avoir zero ou plusieurs espace. J'ouvre les parenthèses pour capturer le résultat et l'utiliser ensuite avec **\1**. Ma capture ne contient ni **"** ni espace qu'il y en ait zéro ou plusieurs. Ensuite zéro ou plusieurs espace peuvent apparaitre suivi d'un **"**.
Je remplace tout ça par **href="** le contenu de mes parenthèses avec **\1** et **"**
==== Caractère spéciaux ====
Si le code hexadécimal du caractère spécial est le ''0xe28093'' alors tapez ce qui suit dans le champ de recherche avec l'option regex
\0xe28093
=== espace invisible ===
Un bug vu dans l'editeur HTML de sharepoint 2013 ajoute des espaces de taille 0 sous la forme ''''
Pour les voir dans sublime text, voici l'astuce => https://stackoverflow.com/questions/20356784/delete-u200b-zero-width-space-characters-using-sublime-text-3
* Soit vous installez le package **highlight-dodgy-chars** dispo dans les packages
* Soit vous faites un "recherche et remplace" en RegEx avec ''\x{200b}''