Projekt jaki-jezyk-programowania.pl - ocena i feedback

Projekt jaki-jezyk-programowania.pl - ocena i feedback
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

dobra ludzie, myślę, że autorzy (czy obecnie chyba autor) dostał solidną dawkę porad i wystarczy, każdy kiedyś zaczynał więc nie ma co się znęcać na siłę ;)


CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0
czysteskarpety napisał(a):

dobra ludzie, myślę, że autorzy (czy obecnie chyba autor) dostał solidną dawkę porad i wystarczy, każdy kiedyś zaczynał więc nie ma co się znęcać na siłę ;)

Dzięki za wsparcie na duchu haha! :D Ale spokojnie, nie traktuję krytyki jako czegoś złego. Wręcz przeciwnie. Gdyby nie ona to wiele bym się nie nauczył. Jednak to, że obecnie strona jest słabej jakości, że mam niewielkie doświadczenie i pojęcie o tym wszystkim i że jestem leszczem programowania już wiemy :D Żałuję tylko, że nie inaczej założyłem tu wątek, bo wiele ważnych rzeczy nie dopowiedziałem (m. in. to co wymieniłem). No, ale wyszło w praniu ;) Myślę, że możemy się już skupić konkretnie nad poprawą jakości strony. Mam nadzieję, że wytrwacie tu ze mną ;)


somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 21 godzin
  • Lokalizacja:Wrocław
1

Ta strona to ogólnie chyba zbiór popularnych mitów i informacji nieaktualnych o jakieś 15 lat. (Tak patrząc chociażby po "artykule" o C#).

CO
Całkiem możliwe :O
CO
Jak widzisz staram się to wszystko po kolei poprawiać.
CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0
fasadin napisał(a):

zrezygnowano z jego wielu kłopotliwych i nie eleganckich właściwości.

klopotliwych? nieeleganckich (blad macie na stronie, tam nie powinno byc spacji). Jezeli chodzi wam o wskazniki to w C++ od 6 lat ich uzywanie jest antyidomem. OD 6 LAT

@fasadin Podałbyś mi na szybko definicję słowa "antyidom"? Stworzyłeś nowe słowo, czy jak? Żeby nie było to próbowałem znaleźć to w google, ale jedyne co znalazłem to 3 posty na forach, które to Ty napisałeś ;). Domyślam się znaczenia, ale chciałbym je poznać :D.


Zobacz pozostały 1 komentarz
CO
@Patryk27: Gdyby @fasadin nie pisał tego "idom" zamiast "idiom" to może by mi było łatwiej ;)
Patryk27
A, faktycznie, teraz zauważyłem :-D
fasadin
literowka ;) sam nie zauwazylem
CO
@fasadin: W każdym twoim poście jaki znalazłem tak było napisane :D No ale mniejsza, już wiem o co chodzi. BTW. Poprawiłem Jave wedle twoich uwag, dziś postaram się jeszcze wziąć za C++/C#
xxx_xx_x
wydaje mi się ze "zrezygnowano z jego wielu kłopotliwych i nie eleganckich właściwości." to odniesienie do dziedziczenia wielobazowego(diamond problem), metod wirtualnych i wirtualnych destruktorów, makr, tworzenia obiektów na stosie, przekazywanie obiektów przez wartość, zwracaniu wskaźników do obiektów tworzonych lokalnie na stosie funkcji itd.
3

Poprawiłem Jave (...), dziś postaram się jeszcze wziąć za C++/C# - Codeboy dziś, 09:01

Nie wiem, jak dla mnie tekst nadal jest pełen nieścisłości i przeinaczeń.

Java to obiektowy, wysokopoziomowy język programowania ogólnego zastosowania, który jest w pełni przenośny, gdyż jest interpretowany przez wieloplatformową maszynę wirtualną Javy (Java Virtual Machine).

Java jest przenośna do momentu, kiedy będziemy potrzebowali interakcji z systemem operacyjnym albo sprzętem, wtedy ta przenośność się znacznie ogranicza. Sporo "real life" programów wprowadza różne dodatkowe założenia dotyczące przenośności, ponieważ potrzebują skorzystać z rzeczy do których nie ma uniwersalnego API pomiędzy różnymi systemami/sprzętami/etc.

Dlatego powstał slogan „Napisz raz, pracuj wszędzie!”.

Write once, run everywhere. run = pracuj? wtf?

Java posiada także wiele wbudowanych bibliotek z gotowymi rozwiązaniami w przeciwieństwie np. do C++, do którego niektóre biblioteki musimy znaleźć, wybrać i dołączyć na własną rękę.

No nie wiem czy w chwili obecnej nie jest odwrotnie. Biblioteka standardowa nowoczesnego C++ to jest przepaść w porównaniu do biblioteki standardowej Javy (w sensie że Javowa jest dosyć uboga).

Java abstrahuje (zajmuję się tym za Ciebie) od sprzętowych detalów takich jak np. zarządzanie pamięcią

Zarządzanie pamięcią jest detalem sprzętowym wyłącznie na poziomie procesora i systemu operacyjnego, na wyższych poziomach dostęp do pamięci mamy wyłącznie przez zapewnione nam abstrakcje, które ukrywają faktyczną implementację sprzętową. Zarządzanie pamięcią jest raczej problemem konkretnego programu, który Java rozwiązuje poprzez model pamięci uwzględniający Garbage Collector.

więc możesz skupić się na programowaniu zamiast martwić się o rzeczy, które wielu uważa za żmudne, czy trudne

Tak brzmi marketing, rzeczywistość jest nieco bardziej brutalna. Początkujący programista Javy ma szereg możliwości, aby zrobić trudnego do znalezienia memleaka, chociażby używając klas anonimowych, które zostawiają "niewidzialne referencje": http://stackoverflow.com/a/10968689

Java jest językiem statycznym, co oznacza, że twój kod zostanie sprawdzony w celu znalezienia błędów zanim zostanie przetworzony, więc łatwiej je namierzyć.

Nie jest powiedziane, że chodzi konkretnie o sprawdzanie zgodności typów. Poprawnie powinniśmy powiedzieć "statycznie typowanym". Nie cały kod zostanie sprawdzony, a jedynie jego składnia oraz właśnie zgodność typów przepływających przez wywoływane metody, przypisywanych do zmiennych itp.

Javę cechuję także silne typowanie, to znaczy, że wyrażenia mają ustalony typ danych. Zapobiega to powstawaniu dziwnych i niespodziewanych błędów, więc kod jest łatwiejszy w utrzymaniu.

Silne typowanie nie musi iść w parze ze statycznym typowaniem, więc należałoby wspomnieć, że w silnym typowaniu chodzi o to, że zmienna raz stworzona nie może w międzyczasie zmienić swojego typu danych.

Bugi są dosyć szybko naprawiane a ilość narzędzi i bibliotek dostępnych dla Javy nie będzie łatwa do zastąpienia.

Chciałbym zobaczyć źródło tego zdania: "bugi są dosyć szybko naprawiane", bo jak rozmawiam ze znajomymi Javowcami (dowód anegdotyczny, ha!) to pokazują mi swoje zgłoszenia błędów, które wiszą nierozwiązane od kilku lat.

W kolejnych latach Java raczej nigdzie się nie wybiera, będzie kontynuować swoja dominacje.

Zgodzę się w części "nigdzie się nie wybiera". Ten język przeżywa(ł) ogromny zastój przez lata i dzięki temu jest sto lat za murzynami. Potęga Javy leży w legacy code, podejrzewam że do nowych projektów chętniej jest teraz wybierany konkurencyjny C#.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0

No nie wiem czy w chwili obecnej nie jest odwrotnie. Biblioteka standardowa nowoczesnego C++ to jest przepaść w porównaniu do biblioteki standardowej Javy (w sensie że Javowa jest dosyć uboga).

Nie jestem miłośnikiem bilioteki stanrdowej Javy - bo duża jej część wygląda nadal jakby robili ją programiści C w latach 90-tych... co zresztą jest prawdą i można wiele zarzucić prawie każdemu pakietowi.
Ale napisanie, że jest uboga to lekkie nadużycie (masz tam wsio od obsługi sieci, plików, wątkow, kryptografii, formatów graficznych, i18 aż do absurdów typu 3 bilioteki UI (awt, swing, javafx).
Pytanie - czego wg Ciebie tam nie ma?


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
xxx_xx_x
akurat biblioteki UI w java są fatalne... https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html objaśnienie BoxLayoutDemo2. Zawsze jak chce coś poukładać w swing to jest to wyzwanie, w C++ udało im się to sensownie rozwiązać (np. wxWidgets i QT)
CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0
Monk Monkowski napisał(a):

Poprawiłem Jave (...), dziś postaram się jeszcze wziąć za C++/C# - Codeboy dziś, 09:01

Nie wiem, jak dla mnie tekst nadal jest pełen nieścisłości i przeinaczeń.
...

Dzięki za kolejną garść uwag. Poprawiłem tylko to na co zwrócił uwagę @fasadin, nie twierdzę, że to są już gotowe opisy. Jeszcze pewnie nie raz będę je przeredagowywał. Ale jak najbardziej takie review od Was bardzo mi pomaga ;). Część z tych informacji była z książki o której wspominałem wcześniej, ale widzę, że trochę ją tam na siłę faworyzowali ;) Z kolei mam wrażenie, że ty trochę po niej ciśniesz :D


1
jarekr000000 napisał(a):

Pytanie - czego wg Ciebie tam nie ma?

Pomieszały mi się argumenty, w poście wyżej miał być C# (przede wszystkim w związku z tym, że poziom abstrakcji Javy i C# jest zbliżony), natomiast jeśli chodzi o wspomniany C++ to chciałbym zauważyć chociażby jak wygląda rozwój biblioteki standardowej Javy i C++. Java uparła się przy jakiejś dziwnej kompatybilności wstecznej, pomimo że niby można w kompilatorze ustawić jakiś source level (-source 7) i to zmienia sposób kompilacji (poprzez dodanie nowych ficzerów). Mogliby nakazać kompilowanie starego kodu na niższym source levelu, a na wyższych levelach wprowadzić jakieś niekompatybilności, wtedy byłby wilk syty i owca cała. Tymczasem (chyba że o czymś nie wiem) unikają łamania kompatybilności jak ognia i każda zła decyzja projektowa podjęta kiedykolwiek musi być utrzymana (chyba że jest jakiś ewidentny bug), dlatego ten stdlib wygląda jakby był z lat 90. Nie można tam nic zmienić, można tylko dodać. To jest wielka kula śnieżna.

Z punktu widzenia nowicjusza (bo tak patrzy na to omawiany w tym wątku projekt) na pewno na pierwszy rzut oka uderzy rozwlekłość różnych wraperów. Przytoczę metodę czytania pliku o określonym charsecie dostępną od Javy 1.7:

Kopiuj
Charset charset = Charset.forName("US-ASCII");
try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException x) {
    System.err.format("IOException: %s%n", x);
}

Gdzie metoda newBufferedReader to skrót, który wygląda tak:

Kopiuj
public static BufferedReader newBufferedReader(Path path, Charset cs){
 CharsetDecoder decoder = cs.newDecoder();
 Reader reader = new InputStreamReader(newInputStream(path), decoder);
 return new BufferedReader(reader);
}

(Źródło: http://www.programcreek.com/2011/03/java-read-a-file-line-by-line-code-example/ )

Podczas normalnego programowania musimy dobierać i łączyć ze sobą różne dekoratory w odpowiedniej, zazwyczaj idiomatycznej (nie mylić z idiotyczną) kolejności. Ewentualna pomyłka powoduje straty wydajności. Jest to tak rozwlekłe, że sami Javowcy kombinują jak programować w Javie nie programując w Javie. Przykład powyższego w Scali:

Kopiuj
import scala.io.Source
for(line <- Source.fromPath("myfile.txt").getLines())
  println(line)

Dlaczego tam można wykonać tę prostą czynność znacznie szybciej? Oczywiście dynamiczne typowanie i przyjaźniejsza składania robią swoje, ale nadal należy zauważyć że poprzez zapewnienie metody Source.fromPath cała sprawa została bardzo mocno ułatwiona. Tej cechy "ułatwiającej" nie wykazuje natomiast w wielu aspektach stdlib Javy.

CO
To edytuj ten poprzedni post, żeby było to co miałeś na myśli, żebym jutro(w sumie to dziś) nie miał wątpliwości jak będę robił poprawki. Dziś już nie mam siły :<
aurel
Osoby niezalogowane nie mogą edytować postów ani dodawać komentarzy.
1

Jeszcze w celu sprostowania jednej rzeczy - odnośnie listingu ze Scalą powołałem się na przestarzałe źródło, dodatkowo w listingu brakuje wyboru kodowania, żeby faktycznie było równoważne. Powinno być:

Kopiuj
Source.fromFile(nazwa_pliku : String, kodowanie : String)

Aczkolwiek nie wpływa to na moją argumentację w żaden istotny sposób.

0
Monk Monkowski napisał(a):
jarekr000000 napisał(a):

Pytanie - czego wg Ciebie tam nie ma?

Pomieszały mi się argumenty, w poście wyżej miał być C# (przede wszystkim w związku z tym, że poziom abstrakcji Javy i C# jest zbliżony),

Zaraz zaraz, chcesz powiedzieć, że biblioteka .net jest uboga?

0
Krwawy Młot napisał(a):

Zaraz zaraz, chcesz powiedzieć, że biblioteka .net jest uboga?

Nie. Chciałem pokazać C++ jako wzór modernizacji stdliba i C# jako "podobny" język z przewagą nad Javą w tym aspekcie. Dodatkowo na korzyść C# przemawia chociażby wbudowana integracja z innymi produktami ze stacka MS.

CO
Poprawiłem to na co zwróciłeś uwagę, zerknij. Jak coś jeszcze Ci się rzuca w oczy to śmiało ;)
CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0

Przebudowałem sposób wyświetlania funkcji w laptopie i na przykład dałem wyszukiwanie binarne. Wszystkie programy działają. Do napisania mi zostało jeszcze w C, C# i R. Formatowanie stosuję javowe bo tak jestem przyzwyczajony, jeśli dla któregoś języka styl Allmana jest odpowiedniejszy to dajcie znać ;) Myślę, że funkcje są już lepszej jakości, dajcie znać jak jest ;)

Wszystkie wasze sugestie dotyczące informacji o językach(JS,java,c++,c,python) (C# tylko "Zastosowanie") już poprawione.

Dzięki wszystkim którzy pomagają i oczywiście czekam na więcej ;)

PS: Dziwiliście się, że aż 3 osoby były do tego potrzebne - teraz została tylko jedna, lepiej? :D


edytowany 1x, ostatnio: Codeboy
2
Kopiuj
return "Znaleziono \""+x+"\" na pozycji "+(middle+1);

Serio? Implementacje algorytmów służą do tego, żeby ich potem gdzieś użyć, a nie printować sobie ładne wiadomości na konsolę. W jaki sposób użyłbyś takiej implementacji w jakimś programie?

Kopiuj
return middle+1;

Tyle. Wszystko. Zwracany wynik musi być użyteczny, inaczej istnienie funkcji nie ma sensu.

Btw. nie wiem czy w ogóle dodawanie tej jedynki ma jakikolwiek sens w językach gdzie indeksuje się od zera.

edytowany 1x, ostatnio: flowCRANE
somekind
A jest jakiś język nie dla dzieci, w kórym indeksuje się od 1?
CO
w R chyba jest od 1 bo tam nie trzeba było dodawać.
CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0

Zdaję sobie z tego sprawę, ale zrobiłem tak z dwóch powodów: żeby była od razu informacja dla zielonych jaki jest wynik + pokazać konkatenacje stringów z intami w rożnych językach. Wiem, że normalnie nie znajdzie zastosowania taki algorytm, ale on nie jest od tego. Tu służy tylko jako przykładowy kod, który pokazuję mniej więcej podstawową semantykę języka. Ewentualnie mogę to rozpisać na dwie funkcję, jedna to czysty algorytm, a druga printująca wynik. Miałem ten dylemat na początku ;) Myślisz, że to będzie lepszy pomysł? ;)

zresztą wydaje mi się, że to nie ma sensu, bo to jest kwestia usunięcia tylko stringa i algorytm już jest gotowy, a do potestowania sobie jak to działa jest w sam raz. Zresztą nikt go nie będzie implementował do swojego kodu czy coś, przecież sortowanie jest wszędzie :D


edytowany 2x, ostatnio: flowCRANE
0

Tzn. w "prawdziwym życiu" (zawsze sie zastanawiam które to nieprawdziwe życie) robi się tak:

Kopiuj
var wynik = funkcjaCoSzuka(zbior, x);
console.log("Znaleziono element " + x + "na pozycji " + wynik);

Strona mówi o "profesjonalnym" podejściu, to niech będzie zrobione po ludzku.

CO
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:32
0

Biorę udział w konkursie DajSięPoznać2017. Jeśli ktoś nie jest wtajemniczony to konkurs polega na rozwijaniu dowolnego, swojego projektu + prowadzenie bloga. Będę opisywał rozwój jaki-jezyk-programowania.pl, może czasem coś innego, więc zapraszam wszystkich do śledzenia ;) blog.jaki-jezyk-programowania.pl

Zachęcam też do zapisania się jeśli ktoś jeszcze tego nie zrobił, bo rejestracja została przedłużona do 12 marca. Nie musi to być projekt tworzony na potrzeby konkursu, może być już coś istniejącego. Konkurs jest dla każdego.

Jeśli rozwijasz już jakiś projekt, ale nie masz bloga i nie wiesz jak go założyć to zrobiłem wpis, gdzie opisuję ten proces z wykorzystaniem narzędzia Jekyll: Blog na Jekyllu oraz jak dodać RSS feed kategorii wymagany przez konkurs: Jak dodać RSS feed kategorii - Jekyll.


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)