Qt czy Eclipse dla linux embedded

Qt czy Eclipse dla linux embedded
FQ
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:59
0

Witam

Potrzebuje do projektu użyć środowiska w które byłoby najlepsze dla programowania linux embedded, (na razie bez wyświetlacza). Zebrałem już parę informacji ale gdzieś brakuje mi pewnych klocków, aby stworzyć oczywisty obraz i na coś się zdecydować.
Póki co w Eclipse udało się uruchomić kompilacje krzyżową i wysłać na urządzenie program, który zadziałał, więc sukces ! Mam zdalne debugowanie i uruchamiane. Przeciwnie do qt bo nawet nie dodarłem jeszcze do tego poziomu w ogóle, ponieważ mam pewne problemy z połączeniem się z urządzeniem i z ogólną konfiguracją qt do tego celu. Trochę nie rozumiem tego dlaczego muszę w qt używać kros kompilatora Angstroma. Dlaczego np narzędzie crosstool-ng nie posiada pliku qmake ? Do końca nie wyczytałem, czy do tego typu prac potrzebne jest zwykłe Qt, czy Qt-SDK, a może Qt-Embedded które haczy o wersje komercyjną ? W Qt na pewno podobają mi się biblioteki są uproszczone, łatwo się z nich korzysta, klasy kontenerów są niezłe, a mechanizm sygnałów i slotów ogólnie pomaga no i jest dobry support, dodatkowo miły interface dla oczu (jak dla mnie). Eclipse znów zmusza to standardowych bibliotek, przez co mamy więcej kodu, ale i większa kontrola, ma masę pluginów i możliwości, ale przez to znów nie jest zoptymalizowane i "ciężkie"
Sam nie wiem, proszę was o jakieś rady. To moje pytania z przemyśleniami, mam nadzieję, że ten temat mi pomoże się zdecydować.

ps Programowanie z hosta z linuxem

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
0

Ale odróżniaj Qt jako IDE (Qt Creator) od Qt jako biblioteki. Można używać Qt pod Eclipse, a można nie używać Qt pod Qt Creatorem.

0

Ok rozumiem, moją nie ścisłość. Czytałem o tym, że pod Eclips można użyć bibliotek Qt. No więc co radzisz użyć dla linux embedded ? Lepiej będzie pisać w Eclips używając bibliotek qt. Czy korzystać całkowicie z Eclipse, czy qt , a może coś zupełnie innego jakie jest wasze zdanie ? Ktoś ma doświadczenie i potrafi coś doradzić ?

stryku
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:607
0

Chyba nie zrozumiałeś bo to

Lepiej będzie pisać w Eclips używając bibliotek qt. Czy korzystać całkowicie z Eclipse, czy qt
nie bardzo ma sens.

Jeżeli chcesz używać Qt to chyba najlepszym wyborem będzie Qt Creator

edytowany 1x, ostatnio: stryku
0

Przede wszystkim chce, abyście uzasadnili czemu Qt-creator, a nie Eclipse....

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

Raczej Qt-creator jako IDE bo:

  1. Ma zintegrowane narzędzia budujące (qmake, kompilator/linker/cross-kompilator, kompilatory zasobów.. ).
  2. Ma zintegrowane narzędzia do tworzenia GUI w trybie ,,makieta XML" i kompilacja do obiektu
  3. Łatwo zrobisz resources (spakowane zestawy plików, ikonek, multimediów)
  4. Łatwe wywołanie linguist'a (pliki z tłumaczeniami językowymi)
  5. Łatwy dostęp do projektów przykładowych i dokumentacji.
  6. Integracja z narzędziami wersjonowania oraz uruchamiania kodu (np. valgrind)...
    7... a sprawdź sam co jeszcze :-)

Podsumowując, łatwiej zacząć.

Eclipse także jest ok ale trzeba go skonfigurować, doinstalować wtyczki, wiedzieć jak i gdzie każde z narzędzi wywołać itp. Czyli jest trochę zabawy. Jeśli warto, to już na dalszym etapie jak elementy środowiska Qt będą opanowane.


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
Azarien
przecież są dystrybucje eclipse'a gotowe z kompilatorem itd.
MO
Przepraszam, ale standardowe zestawy wtyczek do Eclipse z dystrybucji GNU/Linux mi nie wystarczają (potrzebuję trochę nietypowych platform, języków, LaTeX...). Zawsze instaluję Eclipse pobranego ze strony domowej i dodaję wtyczki. Oczywiście wtyczka do Qt także jest :-) Dlatego napisałem "Raczej Qt-creator" bo po co tracić czas na początku na zgranie narzędzi ,,wokół Eclipse". Później kolega będzie robił jak będzie chciał. Import istniejącego projektu z Qt-creatora do eclipse także jest możliwy.
0
  1. Ma zintegrowane narzędzia budujące (qmake, kompilator/linker/cross-kompilator, kompilatory zasobów.. ).

Coś nie bardzo chyba... bo muszę pobrać paczkę z kros kompilatorem z distro ANGSTROM (nie wiem co ma Angstrom do qt... ale ok) wtedy wskazać na ten kompilator i na qmake z rozpakowanej paczki. Masz może jakieś namiary na tutorial jak skonfigurować qt do tego celu ? Bo już raz się męczyłem z tym i coś nie poszło.

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

No to może trochę precyzyjniej.

Pracujesz na jakiej platformie (system ew. dystrybucja), czyli gdzie będzie IDE?
Pod jaką platformę docelową chcesz budować aplikację w Qt?
I w jakiej wersji Qt ma to być aplikacja?
No i czy to ma być aplikacja do istniejącego systemu (już coś jest na platformie.. jakiś OS) czy Qt ma być tam natywnie?

Ja pisałem o Qt 5.4, z hostem pod GNU/Linux, Fedora 21 x64 i platformie docelowej Android bo to robiłem.

Tu masz konfiguracje oficjalne: http://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html
Tu masz info o emb. linux http://doc.qt.io/qt-5/embedded-linux.html
Tu masz info o natywnej instalacji Qt http://doc.qt.io/QtForDeviceCreation/index.html

Jak nie będę tego wiedział, będzie trudno mi pomóc.


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
0
Mokrowski napisał(a):

No to może trochę precyzyjniej.

Pracujesz na jakiej platformie (system ew. dystrybucja), czyli gdzie będzie IDE?
Pod jaką platformę docelową chcesz budować aplikację w Qt?
I w jakiej wersji Qt ma to być aplikacja?
No i czy to ma być aplikacja do istniejącego systemu (już coś jest na platformie.. jakiś OS) czy Qt ma być tam natywnie?

Ja pisałem o Qt 5.4, z hostem pod GNU/Linux, Fedora 21 x64 i platformie docelowej Android bo to robiłem.

Tu masz konfiguracje oficjalne: http://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html
Tu masz info o emb. linux http://doc.qt.io/qt-5/embedded-linux.html
Tu masz info o natywnej instalacji Qt http://doc.qt.io/QtForDeviceCreation/index.html

Jak nie będę tego wiedział, będzie trudno mi pomóc.

Host Debian 7.xxx versja Qt Qt Creator 3.3.2 (opensource) Bazujący na Qt 5.4.1 (GCC 4.6.1, 64 bitowy)
Target TI Sitara AM35xx ARM 1Gh i 512MB RAM
Platforma ? po prostu linux embedded z dystrybucją Angstrom, o ile coś mi się nie zmieni i zrezygnuje z dystrybucji, ale raczej ją zostawię. Ja będę pisał programy daemony obsługujące takie interace jak UART, SPI, I2C urządzenie, z kolei one posłużą aplikacji natywnej (WEB) która będzie głównym interacje dla użytkownika logującego się poprzez przeglądarkę do urządzenia.

0

Apropoo konfiguracji i debug zdalnego nie można tego zrobić takim prostym sposobem

https://www.olimex.com/forum/index.php?topic=3826.0

Dziękuje za linki, ale jest w nich strasznie dużo informacji i nie wiem czy to wszystko jest mi potrzebne :) Ja po prostu potrzebuje skrosować aplikacje i przesłać ją na target , a jakby mi się jeszcze udało jakoś zdalnie podejrzeć poprzez qDebug(), czyli w Hoscie bym widział co się dzieje jak ona działa tnz co wysyła po UART, I2C to by było mistrzostwo świata.

ps przepraszam za dubla, ale nie mogę edytować

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

Nie znam Twojej platformy i nie jest w dodatku na liście oficjalnych. Z tego co wiem Ångström może spokojnie wystawić ssh i zrobisz przez niego deploy (http://doc.qt.io/qtcreator/creator-deployment-embedded-linux.html#deploying-on-embedded-linux). Sesję debug także otworzysz przez tryb remote debug (http://doc.qt.io/qtcreator/creator-debugger-operating-modes.html).
Co do tutoriala to myślę że "ogarniesz temat" jak zobaczysz sobie to: http://www.qtday.it/2014/developing-embedded-linux-applications-qt/
Trudno podać jakiś generyczny tutorial bo każda z platform jest inna :-/
Dość że czeka Cię walka :-)


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
0

Taaa angstrom ma ssh, ftp, http i jeszcze wiele innych mistycznych rzeczy które dopiero odkrywam i właśnie doszedłem już do etapu w którym w qt pisało Deploy 2 with 3 steps i prawie już otwarłem szampana, ale niestety na tym się zatrzymało.... :( Później kolega mi powiedział, że coś grzebał przy ustawieniach serwera ftp więc może to było to. Będę w każdym razie walczył z tym. Proszę Cie, abyś jeszcze coś napisał odnośnie Qt-Embedded. Rozumiem, że do tego trzeba mieć już komercyjną wersję ? Z tego co widziałem dostarcza ona banalny sposób do tworzenia interface na TFT (przyciski , suwaki, polaedycji itp). Zakładam zatem że przy pomocy Qt-Creatora nie jest możliwe tworzenie tego typu rzeczy, do tego jest potrzebne xml dostarczone z Qt-Embedded ?

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
1
  1. W dużym uproszczeniu (bo w szczegóły nie warto wchodzić jak masz w doc.), wersja Community Edition nie zawiera części kontrolek dostępnych w wersji komercyjnej ale tu masz zatrzęsienie tak aplikacji jak i kontrolek: http://qt-apps.org/?xcontentmode=4298 wolnych
  2. Wersja GPL wymaga budowania na platformy embedded ze źródeł bo obrazów dla urządzeń nie ma. To zawsze poświęcony czas.
  3. Spokojnie jak sobie zbudujesz bibliotekę to możesz obsługiwać kontrolki na TFT. Problem leży tylko w dobrej obsłudze tegoż TFT a ja twojego sprzętu nie znam. Powiem tak, szukaj w TI.
    Jak nie znasz Qt, to warto tego Pana sobie posłuchać... robi stosunkowo niewiele błędów (np. przy wielowątkowości pojechał tylko w krzaki aż "zęby bolały" ale ogólnie jest ok) Tylko to nie jest embedded tylko aplikacje głównego nurtu.

Myślę że źródeł dostałeś tyle że możesz przez tydzień czytać i oglądać ;-)


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:2412
1

vim.

Zobacz pozostałe 8 komentarzy
YU
Chciałem dowiedzieć się czy należysz do grupy fanatyków całkowicie odrzucających wszystkie nowoczesne IDE z tools-ami pokroju MSVC+resharperem i IntelliJ włącznie zastepując je vim-em. Wygląda na to że jednak masz w miarę zdrowe podejście do tematu. Nadal jednak nie rozumiem czemu u ciebie jest: MSVC > vim > Qt Creator/Eclipse. Napisałeś, że vim działa co ma być niby jego zaletą. No ale Qt Creator też działa. Używam go z powodzeniem w pracy od dłuższego czasu. Liczbę crash-ów mogę policzyć na palcach jednej dłoni.
n0name_l
Nie. Do C# Visual Studio to sensowne narzędzie, do C++ nie. IntelliJ nie lubię za bardzo bo muli na moim komputerze, więc do scali też używam vima. Eclipse nie dość, że się ciągle sypie to na dodatek działa wolno, a QtCreator nie ma nawet opcji dodawania pliku z poziomu IDE przy projekcie cmake. :|
satirev
@yurai mając 1 config vima masz narzędzie, które odpalisz wszędzie (lokalnie, na zdalnym serwerze, na lodówce...). Co więcej wszędzie to środowisko będzie wyglądało wszędzie prawie identycznie. Wbrew pozorom komendy vima są intuicyjne i nawet opanowanie tylko tych podstawowych pozwoli ci na sprawną pracę. Vim świetnie się sprawdza tam, gdzie do programowania nie potrzebujesz bezpośredniego powiązania do 3 milionów zależności (czytaj nie-java, nie-c#). Dla C++ jest to imho najlepsze środowisko jakie istnieje.
spartanPAGE
No to ja jestem jakiś odludek używający visuala z zależnościami :c
satirev
@spartanPAGE no nie o to chodzi. Prawie każdy kto pisze (zawodowo/hobbystycznie) w cpp pod windowsa używa visuala ale i tak uważam, że vim to lepszy tool ; > P.S. też używam VS w robocie.
0
Mokrowski napisał(a):
  1. W dużym uproszczeniu (bo w szczegóły nie warto wchodzić jak masz w doc.), wersja Community Edition nie zawiera części kontrolek dostępnych w wersji komercyjnej ale tu masz zatrzęsienie tak aplikacji jak i kontrolek: http://qt-apps.org/?xcontentmode=4298 wolnych
  2. Wersja GPL wymaga budowania na platformy embedded ze źródeł bo obrazów dla urządzeń nie ma. To zawsze poświęcony czas.
  3. Spokojnie jak sobie zbudujesz bibliotekę to możesz obsługiwać kontrolki na TFT. Problem leży tylko w dobrej obsłudze tegoż TFT a ja twojego sprzętu nie znam. Powiem tak, szukaj w TI.
    Jak nie znasz Qt, to warto tego Pana sobie posłuchać... robi stosunkowo niewiele błędów (np. przy wielowątkowości pojechał tylko w krzaki aż "zęby bolały" ale ogólnie jest ok) Tylko to nie jest embedded tylko aplikacje głównego nurtu.

Myślę że źródeł dostałeś tyle że możesz przez tydzień czytać i oglądać ;-)

Qt znam dosyć dobrze tak samo jak i tego Pana. Qt znam pod względem aplikacji GUI na PC. Co do tego gościa to wiele razy już go słucham i wiele razy już mi pomógł bądź podsunął rozwiązania :)

Mógłbyś rozwinąć ten poniższy pkt bo nie rozumiem ? Trzeba na platformie (target) umieścić pewnie biblioteki czy jak ? Zbudować coś na targe-cie, żeby aplikacja pod qt działała ?

  1. Wersja GPL wymaga budowania na platformy embedded ze źródeł bo obrazów dla urządzeń nie ma. To zawsze poświęcony czas.

ps Bardzo się cieszę, że znalazły się osoby które znają się na temacie. Dziękuje za porady.

Co do vim to chyba podziękuje....

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
1

Na platformie docelowej może nie być zbudowanego zestawu bibliotek qt. Należy wtedy skompilować te biblioteki ze źródeł. Jeśli będziesz to robił na docelowej platformie to... możesz budować to 2 dni albo dłużej :-/ (nie żartuję). A po 1 dniu otrzymać informację że coś jest "nie halo" :-/ Nie radzę, chyba że z ciekawości (na Raspberry Pi budowało się 3 dni). Lepiej zrobić to poprzez kompilację krzyżową na maszynie silniejszej, z użyciem toolchaina platformy docelowej (w Twoim przypadku kompilator do do Arngstrom'a). W filmiku który Ci podsunąłem, masz właśnie to podejście. Ja biblioteki buduję w klastrze z użyciem dictcc i ccache. Po 1h. mam od źródeł do binarki :-)

No i jeszcze ważna informacja. Jeśli jednak chcesz zbudować aplikację ze zintegrowanymi bibliotekami (kompilacja z bibliotekami statycznie linkowanymi), łamiesz licencję Qt. Nie wolno Ci wtedy takiej aplikacji dystrybuować. Ale to już raczej ważne jak będziesz chciał sprzedawać rozwiązanie.


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
FQ
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:59
0

Yhmmmm... Chyba kumam. Tutaj chodzi o skrosowanie pod arm takich bibliotek jak np QtCore , a pod linux to będzie libQt5Core.so.5.4.1 w zależności co użyjemy w projekcie i te biblioteki należy przerzucić do docelowego systemu na target. Na normalnych PC, aby działał program na "cudzym" PC trzeba było do *.exe , albo do binarki poodrzucać to o co płakał system tutaj analogicznie :)
Powiedz mi taką rzecz. Piszesz o użyciu kompilatora a Angstroma, ale dlaczego nie można użyć kompilatora typu
http://crosstool-ng.org/
Przecież tutaj chodzi o architektura a tą jest arm, więc co za różnica jakim kompilatorem przekrosuje to, tak samo na stronie TI kompilator do krosowania jest od Linaro ? Skąd ta różnorodność i po co ? Tego jeszcze nie ogarniam, bo widziałem, że w qt właśnie powinno się wskazać na kompilator z angstrom a nie "typowy" np arm-unknown-linux-gnueabi-g++,gcc

Ps człowieku , ile Ty mi czasu zaoszczędziłeś swoimi odpowiedziami, nawet nie masz pojęcia , dzięki Tobie klaruje mi się lepiej obraz całego mechanizmu tworzenia aplikacji na arm. Naprawdę serdecznie dziękuje za pomoc :)

MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

ARM licencjonuje wyłącznie arch. rdzenia procesorów. Ma ich wiele rodzai. Np. rodzina mikrokontrolerów to M, procesory aplikacyjne A a do zastosowań czasu rzeczywistego R. W każdej z nich są jeszcze podrodziny np. Coretex-M0+ (bardzo małe i bardzo tanie mikrokontrolery), ... M3, Coretex-M4F (nieco droższe z koprocesorem zmiennoprzcinkowym - pojedyncza precyzja), A7, A9 aplikacyjne.
Do tego rdzenia, każdy z producentów (np. Texas Instruments, Cypress, Freescale, STM) dodaje swoje własne peryferia. Czyli każdy system może mieć nieco inne elementy (jeden ma zegar czasu rzeczywistego, inny nie, jeszcze inny może być uśpiony przy poborze prądu na poziomie ųA a następny ma akcelerację dla przetwarzania sygnału). Stąd kompilator i toolchain dobierasz taki, jaki zaleca producent.
Ja to uprościłem ale pisać elaboratów nie ma co.... Drugim powodem jest określony zestaw bibliotek w systemie (w tym przypadku GNU/Linux).
Stosuj toolchain zalecany. Bo z generycznym będziesz walczył i tracił czas. Czy jednak można? No można ale ... po co? :-/


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
FQ
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:59
0

Teraz już rozumiem, tą różnorodność. Myślę, że póki co w temacie wszystko dla mnie zostało wyjaśnione. Przede mną długa walka, ale jakże exytująca ? :) Dziękuję jeszcze raz za wszystkie informacje, są niesłychanie przydatne i pozwalają mi szybko określić całokształt tego czym się zajmuje. Myślę, że ten temat jest wyczerpany.
Pozdrawiam :)

n0name_l
Co to znaczy exytująca?
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)