Sublime Text – Configurări

Cum sunt organizate pachetele?

Dacă în ST2 toate pachetele erau într-un singur folder, în ST3 s-au schimbat un pic lucrurile, iar pachetele au trei locații posibile. Editorul le citește în următoarea ordine:

  1. În folderul programului: C:\Program Files\Sublime Text 3\Packages. Aici sunt ținute pachetele default;
  2. În  %appdata%\Sublime Text 3\Installed Packages. Aici sunt ținute pachetele… Instalate. Toate fișierele de aici sunt practic arhive .zip cu extensia schimbată.
  3. În %appdata%\Sublime Text 3\Packages. Aici putem suprascrie pachetele aflate în oricare din cele două locații de mai sus. Dacă vrem, de exemplu, să adăugăm un snippet la pachetul JavaScript, este suficient să facem un folder numit JavaScript în care punem doar snippet-ul dorit.

De ce este importantă această structură? Așa cum am zis mai sus, putem suprascrie părți din plugins; de cele mai multe ori aceste părți constau strict în fișiere de configurare (de exemplu, un plugin cu un keymap nepotrivit); de exemplu, plugin-ul HTML (care vine cu editorul) are autocomplete ușor tâmpit. Soluția? Am făcut un fișier gol în Packages\HTML\html_completions.py și am rezolvat problema.

Fișierele de configurare

Spre deosebire de alte aplicații, Sublime își păstrează toate setările în fișiere ce seamănă cu JSON. Diferențele sunt că acceptă comentarii și că este luat în considerare și JSON ușor invalid.

De exemplu, următorul exemplu este un JSON invalid (virgula de la sfârșit invalidează toată povestea):

[
  { "keys": ["ctrl+super+a"], "command": "" },
]

Dacă Sublime 2 era foarte pretențios (iar această setare ar fi dat o eroare), în ST3 s-au schimbat lucrurile. Dacă ești neatent și îți scapă o virgulă, nu este un capăt de țară.

Faptul că există fișiere text ce conțin configurările ajută la două lucruri:

  1. Portabilitate – poți lua folderul cu setări, îl copiezi pe alt PC și gata, totul este fix cum ești obișnuit. Un lucru foarte important este că poți folosi aceleași configurări indiferent de platforma utilizată (Windows, OSX și Linux)
  2. Versionare – orice poate merge prost; nu știi când pisica neagră traversează pe sub o scară într-o vineri 13 și editorul nu mai pornește (sau pornește dar nu mai merge nimic cum erai obișnuit). Poți face reset la o versiune mai veche imediat.

Settings Default vs Settings User

Poți folosi View->Layout->Columns:2 pentru a vedea două fișiere simultan.

Implicit, avem două feluri de setări: default și user. Dacă în ST2 le puteam modifica pe oricare dintre ele – lucru ce genera confuzie și frustrare (la fiecare update setările se pierdeau) – în ST3 setările default sunt read only. Pentru a edita un fișier folosești opțiunea din Package Control sau deschizi fișierul default, alegi save as din meniu (sau apeși ctrl+shift+s) și salvezi fișierul (folosind același nume) în folderul User. Recomandarea mea este să lași în acest fișier doar setările schimbate de tine (nu și cele default).

Tipuri de Configurări

Sublime are câteva tipuri de fișiere de configurare, fiecare având o extensie sugestivă:

  1. *.sublime-settings
  2. *.sublime-keymap
  3. *.sublime-mousemap
  4. *.sublime-commands
  5. *.sublime-menu
  6. *.sublime-macro

Fiecare plugin (sau limbaj) poate conține câte un fișier cu aceste extensii. De obicei există un fișier în folderul (sau arhiva) plugin-ului – e.g. emmet.sublime-settings – care conține setările implicite, dar care se pot modifica. Pentru a face acest lucru, copiezi fișierul respectiv în folderul User și faci modificările (recomandat ar fi să păstrezi doar liniile modificate de tine, nu tot conținutul fișierului).

*.sublime-keymap & *.sublime-mousemap

Așa cum sugereaza și numele, aceste fișiere conțin setările pentru shortcuts și pentru mouse (de exemplu, poți remapa dublu click, click 2, click 2 + click 1 șamd).

*.sublime-commands

Opțiunile din Command Palette sunt ordonate în funcție de accesare.

Dacă adaugi un prefix pentru comenzile tale, poți mapa un shortcut pentru a deschide Command Palette popuplat doar cu acele comenzi.


Sublime are o chestie foarte tare, numită Command Palette (Ctrl+Shift+P), ce-ți permite să faci diverse operațiuni foarte rapid. Acest Command Palette, pe lângă faptul că este foarte fuzzy (de exemplu, poți scrie ww pentru Word Wrap, prre pentru Project Refresh Folders șamd ), permite și customizarea sa. De exemplu, poți adăuga comenzi ce vor apărea când deschizi Command Palette.

*.sublime-menu

Acesta este un caz aparte, ce se ocupă de mai multe meniuri. Dacă la toate celelalte fișiere nu contează numele, aici este foarte important, deoarece determină destinația meniului. Cu excepția Main.sublime-menu – care apare în meniul propriu zis, toate celelalte meniuri apar la click 2 în diverse zone. Din păcate, chiar dacă sunt vreo cinci feluri de astfel de fișiere, nu am reușit să-mi dau seama la ce folosește fiecare. Singura excepție este Context.sublime-menu (apare la click 2 în editor).

*.sublime-macro

Și acesta este un caz ușor aparte fiind, așa cum îi spune numele, un macro: o serie de comenzi înregistrate. Apelarea unui macro înseamnă, de fapt, executarea comenzilor într-o anumită ordine. Poți înregistra un macro nou accesând meniul Tools -> Record Macro.

Default.sublime-keymap

Chiar dacă fișierele de configurare ar trebui să fie cross platform, există situații în care ai vrea să ai anumite configurări diferite pe Mac față de Windows. De exemplu, tasta super înseamnă tasta CMD sau WIN, în funcție de platformă. Dacă pe Mac poți mapa un shortcut pe super+D, în Windows vei avea o mică problemă, deoarece acesta este un shortcut al sistemului de operare.

Prin urmare, poți avea diferite: Default (Windows).sublime-keymap, Default (OSX).sublime-keymap șamd.

Doar că toată povestea asta are două fețe. Pentru că este posibil să ai toate configs perfect compatibile între platforme iar singura diferență să fie… numele. Cum asta ar însemna o încălcare a principiului DRY, există două soluții:

  1. Symlinks – dar implică pași suplimentari pe fiecare mașină în parte
  2. Redenumești fișierul în Default.sublime-keymap (practic, ștergi numele platformei).

Dacă alegi cea de-a doua cale, este important să reții că de fiecare dată când vei alege Preferences -> Keybindings User îți va deschide fișierul Default (platforma).sublime-keymap. Pentru a rezolva acest mic neajuns, creezi un fișier Main.sublime-menu în folderul User în care pui următoarele linii:

[{
  "caption": "User Settings",
  "id": "User_Settings",
  "children": [
    { "command": "open_file", "args": { "file": "${packages}/User/Default.sublime-keymap" }, "caption": "Key Bindings" },
    { "command": "open_file", "args": { "file": "${packages}/User/Preferences.sublime-settings" }, "caption": "Settings " },
  ]
}]

Snippets & Autocomplete

Fiind o discuție mai lungă, am considerat că cel mai bine voi aborda acest subiect în articolul următor.

Version Control

Fie că îți sincronizezi setările între mai multe PC-uri sau vrei doar backup, version control este soluția. Fie că-i Git, SVN sau orice altceva, este puțin important. Poți folosi Dropbox dacă vrei doar backup pentru un singur PC; altfel, consider că e un pic aiurea să descarci câțiva Gb de date doar pentru setările unui editor. Eu folosesc Git și Github pentru sincronizare.

Ce trebuie versionat?

Atenție la fișierele ce pot conține autentificări și/sau licențe. Cu siguranță nu le vrei puse pe Github!

Când am început versionarea prima dată, am pus tot folderul cu setări (ajungi la el din meniul editorului -> Preferences -> Browse Packages) dar mi-am dat seama că nu are rost să țin în repo și pluginurile. Apoi am pus folderul User, dar mi-am dat seama că exclud configurările suplimentare și snippets custom.

Prin urmare, cea mai bună soluție găsită a fost să pun tot folderul de setări în repo dar să elimin toate fișierele din .gitignore (mai puțin folderul User și folderele mele).

*
!.gitignore
!readme.md
!User
!User/*
!User/**/*

Eu am pus toate setările aici.

Va urma

Mai sunt câteva subiecte de atins: snippets, proiecte, build systems etc. În limita timpului disponibil, voi încerca să postez câte un articol săptămânal.

Dacă ai vreo întrebare sau vreu subiect ce crezi că îl omit, nu ezita să lași un comentariu!

4 Comentarii to “Sublime Text – Configurări”

  1. De cand e murit e-text editor caut un editor bun, am incercat toate tampeniile. De Sublime text nu stiam dar pare a fi cam ce imi doream. Ai o bere de la mine cand ne vedem pentru aceasta sugestie.

  2. Staicu Ionuț-Bogdan

    Enjoy!

  3. Salut. Am si eu sublime text ( 3059 ) si as vrea sa stiu cum pot sa il fac editor prestabilit. Sau macar sa apara la: click_dreapta > new > sublime text; Se poate face acest lucru? Multumesc :)

  4. Ionuț Staicu

    @Zbona: pe Windows: la instalare ai o bifă care îți adaugă „Open with sublime” în meniul contextual.
    Pe alte platforme nu știu.

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>