Swift nauka bibliotek , taktyka, na pamiec czy jescze inaczej?

Swift nauka bibliotek , taktyka, na pamiec czy jescze inaczej?
0

Powiedziecie mi prosze ,znam przykladowo juz jako tako skladnie jezyka, w miare rozumiem kod. Podam moze nie na przykladzie zerwnetrznej biblioteki tylko zwyklej metody o co mi chodzi, niech bedzie tableView i CellForRowAt.

Pytanie.- Czy przykladowo zdajac sobie sprawe z tego ze w table View istnieje cos takiego jak CellForRowAt , musze takze sie nauczyc jak mniej wiecej ta funkcja ma wygladac od srodka tzn ,ze musze wypelnic cell jakis tekstem czy musze tylko wiedziec ze istnieje cos takiego jak CellForRowAt a reszte juz ogarniam z dokumentacji.
Jak to jest u was ? CHodzi mi tylko o to zeby jakies dobre nawyki w sobie wyrobic bo w tym momencie jesli szukam informacji to wchodze na stackoverflow lub patrze po tutorialach. Jak wy robicie?

To samo tyczy sie JSON, Alomafire, jaka taktyke obrac podczas uczenia.
Nie mam zadnego backgroundu w programowaniu, wiec opieram sie tylko na tym jezyku, przez kilka miesiecy bladzilem i zastanawialem sie czy w ogole dam rade ale widze , ze zaczynam wychodzic na prosta co jest dla mnie mega sukcesem bo zastanawialem sie czy w ogole uda mi sie cos w tym jarzyc.

Wracajac do pytania , to samo moglbym zadac np z tworzeniem np Rootcontrollera Programatycznie wyrzucajac MainStorybard, czy mniej wiecej trzeba miec juz taka wiedze ze musimy wypelnic tam kilka linijek w Appdelegate czy w Dokumentacji sa takie instrukcje szczegolowo opisane?

Dziekuje za odpowiedz

TU
  • Rejestracja:prawie 19 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Lublin
0

CellForRow niekoniecznie potrzebuje labelki/tekstu. Ogółem jest to metoda i z hermetyzacji/enkapsulacji wynika, że na ogół powinieneś wiedzieć tylko: co metoda przyjmuje i co ma zwrócić. W tym wypadku musi zostać zwrócony widok, więc nadpisując tę metodę masz takowy stworzyć i zwrócić. Przyjmuje zaś index więc na podstawie indeksu masz dobrze rozpoznać jak stworzyć obiekt (co najczęściej przekłada się na odpowiednią tablicę z tekstami/obrazkami/czymś-tam utworzoną wcześniej).

Jak czegoś nie wiesz (lub ja nie wiem), to command + lewy przycisk myszy na metodzie i w wewnętrznej dokumentacji XCode (nad nagłówkami metod) masz wystarczająco dużo informacji (zazwyczaj).

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:15 dni
1

Jak masz macOSa (a zakładam, że skoro Swift to masz), to zainstaluj sobie Dash (https://kapeli.com) i ustaw sobie na skrót klawiszowy (ja mam ⌥ + Spacja). Dzięki temu możesz szybko szukać w dokumentacji. Ogólnie IMHO nie opłaca się uczyć na pamięć na siłę. Z czasem sam zapamiętasz najważniejsze fakty, a od reszty masz dokumentację.


Matthi
W nowej pracy dostałem pierwszy raz do ręki Maca, i uczę się swifta, objective-c i php od zera. Dzięki za tipa! Masz jeszcze coś godnego polecenia z takich programów użytkowych czy helperów?
J9
  • Rejestracja:około 8 lat
  • Ostatnio:2 miesiące
  • Postów:35
0

dzieki za odp. W sumie dosc jasno to wyjasniles. Co do metod to zawsze tak jest , ze byle wiedziec do czego metoda sluzy i jaka wartosc zwraca i tyle nam potrzebne? Reszta z dokumentacji?

Z tego co widze obaj jestesmy z Lublina:) chociaz jak uda mi sie w miare na juniora ogarnac Swifta to mam nadzieje ze juz nie:) Wracajac do tematu , a propoS JSON. Jak sie zabrac za to , jest tutoriali troche , mam przed soba jakis kod tylko pytanie jak i wczesniej, czy musze mniej wiecej znac jakies schematy na pamiec typu GET, POST czy tez bazowac na jakiejs dokumentacji? W dokumentacji Apple jest to dla mnie w miare juz jasne o co chodzi, natomiast JSON to chyba 3rd documentation o ile dobrze pamietam i tutaj nie wiem za bardzo na jakich materialach do tego bazowac.

J9
  • Rejestracja:około 8 lat
  • Ostatnio:2 miesiące
  • Postów:35
0
Tulio napisał(a):

CellForRow niekoniecznie potrzebuje labelki/tekstu. Ogółem jest to metoda i z hermetyzacji/enkapsulacji wynika, że na ogół powinieneś wiedzieć tylko: co metoda przyjmuje i co ma zwrócić. W tym wypadku musi zostać zwrócony widok, więc nadpisując tę metodę masz takowy stworzyć i zwrócić. Przyjmuje zaś index więc na podstawie indeksu masz dobrze rozpoznać jak stworzyć obiekt (co najczęściej przekłada się na odpowiednią tablicę z tekstami/obrazkami/czymś-tam utworzoną wcześniej).

Jak czegoś nie wiesz (lub ja nie wiem), to command + lewy przycisk myszy na metodzie i w wewnętrznej dokumentacji XCode (nad nagłówkami metod) masz wystarczająco dużo informacji (zazwyczaj).

Jasne mam macbooka pro

Masz racje, nie ucze sie wszsytkiego na pamiec , wszystko samo wchodzi, natomiast chce sie skupic na powtarzaniu zadan tutoriali zeby to utrwalac i po prostu o sam schemat dzialania mi chodzi jak najwiecej wyciagnac z tego i czego sie musze nauczyc. Zaczalem nauke od 0 wlasciwie w styczniu, cos zaczalem juz kumac i widze ze musze to ustawic na wlassciwy tor, poniewaz postawilem sobie za cel marzec przyszlego roku , zeby wystartowac na juniora. Materialow zgromadzilem od groma. Podstawy z jezyka na biezaco wlasciwie uzupelniam na tutorialach, bo co cos przerobie to wyszukuje informacji na interesujacy mnie temat. O ile elementy z dokumentacji Apple sa dla mnie zrozumiale( w miare , przynajmniej widze ze juz jestem na wlasciwiej sciezce), o tyle Alomafire , Rest, Json z , ktorymi sie ostatnio zetknalem juz srednio, a przydaloby sie ten temat przyswoic dobrze i zastanawiam sie jak doswiadczeni devsi do tego podchodza.

edytowany 1x, ostatnio: jkb91
LS
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:990
0

Długa druga przed tobą drogi padawanie i wyboista. Uczenie się api Foundation w swifcie obecnie ma ten jeden mankament że nie wiadomo czy autorom nie strzeli do głowy jeszcze raz zmiana koncepcji nazewnictwa co już wersję temu miało miejsce :) Miałem niezły ubaw jak 90% copypastów z SO przestało nagle działać w swift 3. Powodzenia życzę :)


--
Annuit Coeptis
J9
  • Rejestracja:około 8 lat
  • Ostatnio:2 miesiące
  • Postów:35
0
loza_szydercow napisał(a):

Długa druga przed tobą drogi padawanie i wyboista. Uczenie się api Foundation w swifcie obecnie ma ten jeden mankament że nie wiadomo czy autorom nie strzeli do głowy jeszcze raz zmiana koncepcji nazewnictwa co już wersję temu miało miejsce :) Miałem niezły ubaw jak 90% copypastów z SO przestało nagle działać w swift 3. Powodzenia życzę :)

Sugerujesz, ze zle podchodze do tematu?

caer
  • Rejestracja:około 11 lat
  • Ostatnio:10 miesięcy
  • Postów:465
0

Nie piszę w swifcie, ale generalnie ucząc się języka i biblioteki standardowej robię masę fiszek z nazwami, parametrami i kruczkami różnych funkcji, wyjaśnieniami pojęć itp. Pewnie, z czasem te najpopularniejsze i tak bym zapamiętał, ale ta metoda jest dużo szybsza i pozwala skupić się na myśleniu o problemie a nie na skakaniu co chwila do dokumentacji

MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:2 minuty
0

Najważniejsze to czytać dokumentację. Najlepiej ze zrozumieniem.
Jak się dużo pisze używając danej biblioteki, to pamiętanie jak co działa samo przychodzi, ale wtedy będziesz robił coraz bardziej zaawansowane rzeczy i znowu trzeba czytać dokumentację, podopierać się google i stackoverflow (apple forum jest strasznie niewygodne, ale bardziej zakręcone rzeczy to tylko tam).

Ja kodze w C++ i Objective C (łącznie) (większość kodu idzie w C++ a potem za pomocą Objective C++ przerzucam most do Objective C i Swift).
Jak ana razie nie miałem okazji skorzystać z dobrodziejstw Swift-a, ale jako że biblioteki są wspólne to jak będę miał okazję to będzie to bezbolesne.

Niestety Apple lubi dymać third party developers.
Przykładowo korzystanie z Interface Builder zwykle oznacza, że co 2 - 3 lata trzeba będzie wszystko przekrzykiwać od początku. Na dodatek storyboard jest bardzo nieskalowalne.
Dlatego uwagi na temat Swift 3 jakoś mnie nie dziwią.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
LS
Co rozumiesz przez wspólne biblioteki? Możliwość odwoływania się w Swifcie do selektorów objc? Bo póki co to najwięcej wtf swiftowych można znaleźć właśnie na granicy światów. Nie wiem też jak wygląda sprawa z objc++ ale praca z C api w swifcie to mordęga, czasem łatwiej zakodzić wrapper objc na funkcję C i wystawić bridge header do swifta. Może w kolejnych iteracjach będzie lepiej :)
MarekR22
Swift nie ma innych bibliotek. Jest dokładnie to samo co dla ObjC. Różnice się trafiają ale są minimalne.
LS
Różnice pojawiły się już na poziomie kolekcji i stringów. Z czasem będzie ich więcej jak tylko swift stanie się pełnoprawną częścią systemu. Nie oszukujmy się to co jest teraz to proteza, pytanie na jak długo
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8404
0

natomiast chce sie skupic na powtarzaniu zadan tutoriali zeby to utrwalac

To się nie opłaca, bo będziesz utrwalał to co już wiesz, a często same tutoriale (które są często słabo napisane). Poza tym będziesz utrwalał rzeczy, które są niepotrzebne.

Lepsze jest podejście ewolucyjne, czyli szukanie coraz to nowych wyzwań, problemów (tworzenie coraz to nowych projektów) i wtedy automatycznie potrzebne rzeczy będą ci się utrwalać, a pewne zapomnisz, a pewnych rzeczy się oduczysz. Czyli będziesz na plusie, bo przefiltrujesz sobie wiedzę, oddzielisz ziarna od plew, a nie będziesz utrwalać złych nawyków.

Bo nauka z tego samego ciągle to zamknięcie się na naukę i powielanie tego samego w kółko.

A same tutoriale są dobre na początek, ale w pewnym momencie trzeba je wyrzucić w kąt i napisać coś własnego.

Czyli praktyka > wiedza.

jaka taktyke obrac podczas uczenia.

Żadną. Po prostu przestań się uczyć. A raczej przestań przywiązywać uwagę do tego, bo każdy programista się uczy, ale dobrze jeśli robi to przy okazji zabawy/pracy a nie jest to jego główna aktywność, bo to do niczego dobrego nie prowadzi raczej...


J9
  • Rejestracja:około 8 lat
  • Ostatnio:2 miesiące
  • Postów:35
0
LukeJL napisał(a):

natomiast chce sie skupic na powtarzaniu zadan tutoriali zeby to utrwalac

To się nie opłaca, bo będziesz utrwalał to co już wiesz, a często same tutoriale (które są często słabo napisane). Poza tym będziesz utrwalał rzeczy, które są niepotrzebne.

Lepsze jest podejście ewolucyjne, czyli szukanie coraz to nowych wyzwań, problemów (tworzenie coraz to nowych projektów) i wtedy automatycznie potrzebne rzeczy będą ci się utrwalać, a pewne zapomnisz, a pewnych rzeczy się oduczysz. Czyli będziesz na plusie, bo przefiltrujesz sobie wiedzę, oddzielisz ziarna od plew, a nie będziesz utrwalać złych nawyków.

Bo nauka z tego samego ciągle to zamknięcie się na naukę i powielanie tego samego w kółko.

A same tutoriale są dobre na początek, ale w pewnym momencie trzeba je wyrzucić w kąt i napisać coś własnego.

Czyli praktyka > wiedza.

jaka taktyke obrac podczas uczenia.

Żadną. Po prostu przestań się uczyć. A raczej przestań przywiązywać uwagę do tego, bo każdy programista się uczy, ale dobrze jeśli robi to przy okazji zabawy/pracy a nie jest to jego główna aktywność, bo to do niczego dobrego nie prowadzi raczej...

Czyli krotko mowiac mam sie opierac tylko na dokumentacji?

LukeJL
Nie, czemu. Tutoriale też są spoko na początek, raczej chodziło mi o to, żeby nie uzależniać się od klepania tutoriali czy przeglądania dokumentacji, a zacząć robić własne projekty
LS
Kolejna ważna zasada młody padawanie - każda dokumentacja kłamie ew. w najlepszym przypadku jest myląca. Zwłaszcza u Appla :D
J9
  • Rejestracja:około 8 lat
  • Ostatnio:2 miesiące
  • Postów:35
0

A dam przyklad jeszcze. Gdybyscie mieli taki problem. Chcecie stworzyc np aplikacje to-do-list, jak sie do tego zabieracie.

Nie chodzi mi tutaj kompletnie o to jak to zrobic tylko o to ,ze ja przerabiajac jakies tutoriale znam metody itd ale jesli nie widzialbym tego na tutorialach i chcialbym np dodac opcje "dodaj kolejny element do tabeli" i "odswiez zawartosc" skad mam wiedziec gdzie tego w ogole szukac i , ze cos takiego istnieje. To jest moj glowny problem chyba, z ktorym nie umiem sobie poradzic ;/

Na zdrowy rozum , wchodze w dokumentacje table view i szukam tego tam? Czyli jesli interesuje sie np praca z Table View to musze sie dobrze zapoznac z dokumentacja metodami, przeczytac wszystko po kolei itd. Dobrze rozumuje?

https://github.com/Alamofire/Alamofire , gdybym mial sie uczyc Alomafire to to bd odpowiednie?

edytowany 3x, ostatnio: jkb91
Zobacz pozostałe 2 komentarze
LS
Gościu to junior a ty mu z RXem wyskakujesz :D - to samo z VIPem, niech najpierw ogarnie Applowe MVC, zahaczy o MVVM, zrozumie DI, jak tworzyć testowalne klasy a dopiero później zabiera się za wyższą półkę. Po kolei :)
J9
MVC ogolnie polega na rozdzieleniu w Xcode danych, zarzadzania czyli controllera oraz elementow widoku? Czyli przykladowo tworze 3 foldery glowne i tam rozmieszczam te elementy? Co to jest DI i testowalne klasy?
grzmot_cebula
@loza_szydercow: czytaj ze zrozumieniem, napisałem jak już poogląda to wtedy może spojrzeć i się zainteresować. PS. nie będę zaczynał flame'a ale @jkb91 jest juniorem a Ty mu niżej podrzucasz https://www.mikeash.com/pyblog/ i mnie karcisz za Rx i VIP? Srsly?
LS
@grzmot_cebula: Nie bez kozery mam szyderców w loginie ;) A do sensownego stosowania Rxa to nie wystarczy "pooglądanie" zwykłej obiektówki bo to jest cholernie niebezpieczne narzędzie - pozwala zrealizować skomplikowane scenariusze za pomocą bardzo małej ilości kodu. I to jest problem i niebezpieczeństwo którego junior nie będzie świadomy :) @jkb91 DI czyli dependency injection czyli wstrzykiwanie zależności czyli luźne powiązania między obiektami (jak również przeniesienie konfiguracji i tworzenia obiektów z nich samych do fabryk i kontenerów)
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8404
2

jest takie powiedzenie "first make it work, then make it right, then make it fast"
najpierw robisz byle jak, żeby działało, a potem robisz retrospekcję i patrzysz na to co narobiłeś i myślisz, jak można zrobić lepiej. I przeprowadzasz refaktoring (przerabiasz kod, ale tak, żeby zachować funkcjonalność), ew. przepisujesz od nowa. Na tym etapie jest miejsce na robienie dodatkowego researchu, przemyślenia. Czyli "make it right" (przy czym "right" jest subiektywne. To ty decydujesz co jest "right").

A potem szlifujesz i robisz dalsze "końcowe" poprawki(czyli "make it fast", albo "make it beautiful").

Potem z kolei wracasz do punktu wyjścia, bo programowanie nie ma początku ani końca, tylko jest procesem interacyjnym, w kółko powracasz do tego samego tylko robisz to lepiej. Albo łapiesz się za kolejny problem i przechodzisz ten cykl od nowa, tylko rozwiązujesz już inny problem. To się nazywa Agile.

Na zdrowy rozum , wchodze w dokumentacje table view i szukam tego tam?

dobrym pomysłem jest też zobaczenie po źródłach różnych projektów na Githubie jak coś można rozwiązać. Niekoniecznie w swoim języku. Jeśli się uczysz Swifta (nowy język) to pewnie i tak będziesz musiał się uczyć programowania z materiałów do innych języków, np. do Objective C.


edytowany 4x, ostatnio: LukeJL
LS
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:990
0

Jeśli dalej chcesz się bawić w zabawki Apple to poczytaj tego gościa https://www.mikeash.com/pyblog/ - zwłaszcza starsze wpisy. Tylko się nie przestrasz :D


--
Annuit Coeptis
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)