Leer hoe je een TextMate-kampioen kunt worden

TextMate is veruit de teksteditor die de meeste webontwikkelaars op de Mac gebruiken. In de screencast van vandaag zullen we enkele van de functies bekijken die de meeste ontwikkelaars simpelweg niet gebruiken, waardoor uw productiviteit enorm kan toenemen doordat u minder kunt typen!

Geen Mac-persoon? Jeffrey heeft een screencast getiteld "How I Can Twice As Fast As You", laat zien hoe vergelijkbare acties moeten worden uitgevoerd met behulp van een "text expander" -toepassing in Windows.


Volledige screencast



Gebruikte snelkoppelingen

U kunt alle sneltoetsen en functies van TextMate bekijken in het menu 'Bundels'. Hier zijn enkele van degenen die ik regelmatig gebruik:

Sleutel

tab
Verschuiving
^ Controle
Optie (Alt)
Commando
Escape (esc)
terugkeer
↓ ← ↑ → Toetsenbord pijltoetsen
                                      

HTML

kortere weg Actie
^ ⇧ , Nieuw HTML-tagpaar
⌥ ⎋ Tag / kenmerk automatische aanvulling
⌘ ⇧ 7 Selectie converteren naar HTML-entiteiten
! ⇥ Internet Explorer-voorwaarden
⇧ ↩ Kabelbreuk
^ ⇧ V Valideer HTML / CSS
link ⇥ Stijlblad Link Tag
stijl ⇥ Inline stijlblok
scriptsrc ⇥ Externe JavaScript-tag
script ⇥ Inline JavaScript-blok
                                      

PHP

kortere weg Actie
php ⇥
echo ⇥
als ⇥

ifelse ⇥

voor ⇥
voor elke ⇥
terwijl ⇥
matrix ⇥
schakelen ⇥
geval ⇥
Zoals je zou verwachten.
vereist ⇥
req1 ⇥
incl ⇥
incl1 ⇥
vereisen 'bestand';
require_once 'bestand';
include 'file';
include_once 'bestand';
$ _ ⇥ Selecteer $ _ ['POST'], $ _ ['GET'] etc. (Global Arrays)
^ ⇧ V Valideer de syntaxis
⌘ ⇧ R PHP-bestand uitvoeren
                                      

Robijn

kortere weg Actie
als ⇥
ife ⇥ (if, elsif)
tenzij ⇥
terwijl ⇥
Zoals je zou verwachten.
vereist ⇥ vereisen ""
reqg ⇥ vereisen "rubygems"
vereisen ""
Hash ⇥ Hash.new | hash, key | hash [key] =
: ⇥ : toets => "waarde",
Bestand ⇥ Selecteer voor verschillende 'Bestand' objectmethoden (lees, schrijf etc.)
⌘ R Run Ruby-bestand
                                      

rails

kortere weg Actie
cla ⇥ Creëer Rails Controller
flits ⇥ flash [: notice] = "
ra ⇥ render: action => "
vp ⇥ validates_presence_of: input
vl ⇥ validates_length_of: input,: within => 1 ... 12
^ P params [: doel]
^ J bijeenkomst [: doel]
^ ⇧ . <%= %>
ff ⇥ <% form_for @model do |f| -%>

<% end -%>

f. ⇥ Selecteer voor Rails 'formulier helper - label, veld, wachtwoord, tekstveld, selectievakje enz.
slt ⇥ <%= stylesheet_link_tag"%>
jit <%= javascript_include_tag"%>
⇧ ⌥ ⌘ ↓ Ga naar de juiste controller, model, weergave enz. Voor het huidige bestand
mcol ⇥ Gebruik bij migraties. Selecteer om kolommen toe te voegen, te bewerken, te hernoemen, te verwijderen enz.
                                      

Maak uw eigen sneltoets / sneltoets

We gaan een snelkoppeling maken (toegankelijk via ⌘⇧A) om de momenteel geselecteerde tekst in een koppeling in te pakken en direct naar het kenmerk gaan om de URL in te voeren.

Ga in TextMate naar "Bundels> Bundeleditor> Showbundle-editor" (of druk op ^⌥⌘B). Dit is hoe mijn editor eruit ziet. De jouwe kan er anders uitzien omdat ik een aantal aangepaste bundels heb toegevoegd en sommige heb verwijderd voor talen die ik niet gebruik:


Klik op de HTML-vervolgkeuzelijst (bundel), klik op de + in de linkerbenedenhoek van het venster en selecteer 'New Snippet'. Noem dit fragment 'Wrap Link' en vervolgens 'Activering', selecteer 'Key Equivalent' en voer in het vak de toetscombinatie in die u wilt gebruiken (bijv. ⌘⇧A).


Voer in het tekstgebied het volgende in:

 $ TM_SELECTED_TEXT

$ TM_SELECTED_TEXT is een variabele die de geselecteerde tekst bevat. Sluit het venster en probeer het uit. Open een document in TextMate, markeer wat tekst en druk op de toetscombinatie. De selectie wordt ingepakt in ankertags.

Echter, zoals het nu is, moet je nog steeds je cursor verplaatsen naar de href = "" attribuut om de daadwerkelijke link in te voeren. Zou het niet eenvoudiger zijn als onze cursor zich daar automatisch bewoog?

Wijzig de opdracht 'Wrap Link' naar het volgende:

 $ TM_SELECTED_TEXT

De $ 1 vertelt TextMate waar de cursor moet worden geplaatst na het uitvoeren van de taak. Je kunt plaatsen $ 2, $ 3 enz. en dan door hen heen gaan met behulp van de tab-toets.

Wijzig tot slot de opdracht in:

 $ 2: $ TM_SELECTED_TEXT

U kunt standaardtekst op een locatie toevoegen met $ 2: standaardtekst. 'Standaardtekst' wordt weergegeven en automatisch gemarkeerd wanneer u erop tabelt.
In ons geval hebben we de geselecteerde tekst ingesteld als tabbladlocatie voor omstandigheden waarin u de oorspronkelijke tekst wellicht wilt wijzigen.

Je kunt ook tekst die is ingevoerd op tabpunten 'spiegelen', zoals:

 

Tekst: $ 1

Een andere tekst: $ 2: blah de blah de blah

Spiegel van 1: $ 1

Wat u vervolgens op het eerste tabblad invoert, wordt automatisch ingevoerd in andere posities met dezelfde waarde.


Verdere voorbeelden:

Persoonlijk heb ik mijn eigen bundels gemaakt voor het opnemen van de jQuery-bibliotheken, het invoeren van 'Lorem Ipsum'-tekst en ook voor het schrijven van Nettuts-artikelen. Bijvoorbeeld:

jQuery-fragmenten

Vindt u het gebruik van gedachtenloos invoeren van jQuery-tags? Probeer deze:
'jQuery CDN' geopend met inc-jquery tab-trekker:

 

'jQuery UI CDN' geopend met inc-ui tab-trekker:

 

'jQuery Inline Script' toegankelijk met inline-jquery tab-trekker:

 

'jQuery Document Ready' geopend met jQuery tab-trekker:

 \ $ (function () $ 0);

Notitie: De back-slashes aan het begin van $ (function () is om te ontsnappen aan de $ karakter - anders denkt TextMate dat het een variabele is om te proberen en te renderen!

U kunt deze allemaal ook gewoon toewijzen aan een jQuery tab-trigger, en als je het uitvoert, krijg je een vervolgkeuzelijst om uit te kiezen. Dit is handig als u liever geen grote groepen snippetnamen onthoudt!


Nettuts-fragmenten

Ik heb ook een bundel voor de verschillende tags waar Nettuts artikelen van afhankelijk zijn, zoals:
'Pre-codeblok' geopend met behulp van nt-pre tab-trigger:

 
 $ 2 

'Tuts Image' toegang met behulp van nt-img tab-trigger:

 

Bij het schrijven van artikelen gebruik ik een kleine sjabloon om het lezen te vergemakkelijken tijdens het proeflezen. Dit fragment heeft een voorbeeld van 'spiegelen' op de titel- en H1-tags. Ik benader dit met behulp van de tab-trigger van de nt-template:

  $ 1: TITLE 

$ 1

$ 2: Samenvatting tekst

$ 4: Koptekst

$ 5: begin met typen! Gebruik H3 voor koppen en H4 voor subtitels

$ 0