docs: add emacs-extensions.org — detailed guide for new packages
This commit is contained in:
471
notes/emacs-extensions.org
Normal file
471
notes/emacs-extensions.org
Normal file
@@ -0,0 +1,471 @@
|
|||||||
|
#+TITLE: Emacs Extensions — Instalace a Workflow
|
||||||
|
#+DATE: [2026-02-24 Tue]
|
||||||
|
#+OPTIONS: toc:3
|
||||||
|
|
||||||
|
* Přehled keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-------------+--------------------------+--------------------------------|
|
||||||
|
| =SPC o c= | org-caldav-sync | Sync kalendáře s CalDAV |
|
||||||
|
| =SPC o k= | kubel | Kubernetes management |
|
||||||
|
| =SPC o C= | cfw:open-org-calendar | Vizuální kalendář |
|
||||||
|
| =SPC u= | vundo | Vizuální undo tree |
|
||||||
|
| =SPC s e= | iedit-mode | Editace všech výskytů |
|
||||||
|
| =SPC s q= | org-ql-search | Org-ql dotaz |
|
||||||
|
| =SPC s Q= | org-ql-view | Org-ql uložené pohledy |
|
||||||
|
| =SPC n r u= | org-roam-ui-mode | Org-roam graf v prohlížeči |
|
||||||
|
| =SPC b b= | citar-open | Otevřít referenci |
|
||||||
|
| =SPC b i= | citar-insert-citation | Vložit citaci |
|
||||||
|
| =SPC b n= | citar-open-notes | Poznámky k článku |
|
||||||
|
| =SPC b r= | citar-refresh | Obnovit bibliografii |
|
||||||
|
| =SPC t g= | langtool-check | Kontrola gramatiky |
|
||||||
|
| =SPC t G= | langtool-check-done | Zrušit zvýraznění gramatiky |
|
||||||
|
| =, C i= | org-clock-in | Začít měřit čas (org) |
|
||||||
|
| =, C o= | org-clock-out | Ukončit měření |
|
||||||
|
| =, C r= | org-clock-report | Výpis odpracovaného času |
|
||||||
|
| =, A s= | org-anki-sync-entry | Sync heading do Anki |
|
||||||
|
| =, A S= | org-anki-sync-all | Sync vše do Anki |
|
||||||
|
| =C-M-n/p= | combobulate-navigate | Navigace po AST uzlech |
|
||||||
|
| =C-M-u/d= | combobulate-navigate | Nahoru/dolů v AST |
|
||||||
|
|
||||||
|
* Tier 1 — Vysoký dopad
|
||||||
|
|
||||||
|
** org-caldav — Sync s CalDAV
|
||||||
|
|
||||||
|
Obousměrná synchronizace org souborů s CalDAV serverem. Události z org se promítnou do kalendáře a naopak.
|
||||||
|
|
||||||
|
*** Instalace
|
||||||
|
|
||||||
|
Balíček je v =packages.el=, konfigurace v =config.el=. Server: =cal.apps.sukany.cz=, uživatel =martin@sukany.cz=. Heslo v =~/.openclaw/.env= (=$CALDAV_PASSWORD=).
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+-------------------+--------------------|
|
||||||
|
| =SPC o c= | org-caldav-sync | Spustit sync |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. Otevři =~/org/personal.org=, přidej heading s datem: =* Schůzka <2026-03-01 Sun 14:00-15:00>=
|
||||||
|
2. =SPC o c= — sync s CalDAV
|
||||||
|
3. Událost se objeví v kalendáři na =cal.apps.sukany.cz=
|
||||||
|
4. Změny z kalendáře se stáhnou do =~/org/caldav-inbox.org=
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Sync směr je =twoway= — funguje oběma směry
|
||||||
|
- =caldav-inbox.org= slouží jako přijímací soubor pro nové události ze serveru
|
||||||
|
- Před prvním syncnem vytvoř =~/org/caldav-inbox.org= (prázdný soubor stačí)
|
||||||
|
|
||||||
|
** envrc — Per-project prostředí
|
||||||
|
|
||||||
|
Automaticky načítá =.envrc= soubory přes direnv při vstupu do projektového adresáře. Proměnné prostředí se nastaví per-buffer.
|
||||||
|
|
||||||
|
*** Instalace
|
||||||
|
|
||||||
|
#+begin_src shell
|
||||||
|
# direnv musí být nainstalovaný
|
||||||
|
brew install direnv # macOS
|
||||||
|
sudo apt install direnv # Debian/Ubuntu
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Balíček se aktivuje globálně po startu Emacsu.
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. V kořeni projektu vytvoř =.envrc=: =export DATABASE_URL=postgres://...=
|
||||||
|
2. =direnv allow= v shellu
|
||||||
|
3. Otevři soubor z projektu v Emacsu — envrc automaticky nastaví proměnné
|
||||||
|
4. =M-x envrc-show= ukáže aktuální prostředí bufferu
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Funguje per-buffer, ne globálně — různé projekty mají různé proměnné
|
||||||
|
- Kombinuj s =.env= soubory přes =dotenv= layout v =.envrc=
|
||||||
|
|
||||||
|
** embark — Kontextové akce
|
||||||
|
|
||||||
|
Doom vertico modul embark zahrnuje. Embark nabízí kontextové akce nad aktuálním cílem (soubor, symbol, URL) v minibufferu nebo v bufferu.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
Doom výchozí: =C-.= v minibufferu nebo bufferu spustí embark-act. Prompter nastaven na =embark-keymap-prompter= — zobrazí klávesovou mapu dostupných akcí.
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC f f= (find file) — začni psát název souboru
|
||||||
|
2. =C-.= na kandidátovi — embark ukáže akce: otevřít, smazat, kopírovat cestu, grep...
|
||||||
|
3. Vyber akci klávesou (např. =d= pro delete, =c= pro copy)
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- =C-;= = embark-dwim (provede nejpravděpodobnější akci rovnou)
|
||||||
|
- Funguje i mimo minibuffer — na symbolu v kódu nabídne dokumentaci, definici
|
||||||
|
|
||||||
|
** wgrep — Editovatelný grep
|
||||||
|
|
||||||
|
Umožňuje editovat výsledky grepu přímo v grep bufferu a uložit změny do všech souborů najednou.
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC s p= (project search) — hledej =old_function=
|
||||||
|
2. V grep bufferu: =C-c C-p= (wgrep-change-to-wgrep-mode)
|
||||||
|
3. Použij =:%s/old_function/new_function/g= (evil substitute)
|
||||||
|
4. =C-c C-c= — uloží změny do všech souborů
|
||||||
|
5. =C-c C-k= — zruší změny
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- =wgrep-auto-save-buffer= je zapnutý — soubory se uloží automaticky po =C-c C-c=
|
||||||
|
- Kombinuj s =SPC s p= (ripgrep) pro refactoring přes celý projekt
|
||||||
|
|
||||||
|
** kubel — Kubernetes management
|
||||||
|
|
||||||
|
Interaktivní rozhraní pro správu Kubernetes zdrojů přímo z Emacsu. Cluster: =infra01.sukany.cz=, přístup přes kubeconfig.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+-------------------------------+------------------------|
|
||||||
|
| =SPC o k= | kubel | Otevřít kubel |
|
||||||
|
| =g= | kubel-get-resource-details | Detail zdroje |
|
||||||
|
| =E= | kubel-exec-pod | Exec do podu |
|
||||||
|
| =l= | kubel-get-pod-logs | Logy podu |
|
||||||
|
| =d= | kubel-describe-resource | Describe |
|
||||||
|
| =D= | kubel-delete-resource | Smazat zdroj |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC o k= — otevře kubel s aktuálním kontextem
|
||||||
|
2. Vyber namespace (kubel zobrazí seznam)
|
||||||
|
3. =l= na podu — zobrazí logy
|
||||||
|
4. =E= na podu — otevře shell v podu přes vterm
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Kubeconfig musí být správně nastaven (=~/.kube/config= nebo =$KUBECONFIG=)
|
||||||
|
- Pro přepínání kontextů použij =kubel-set-context=
|
||||||
|
|
||||||
|
* Tier 2 — Kvalita života
|
||||||
|
|
||||||
|
** org-clock — Sledování času
|
||||||
|
|
||||||
|
Vestavěná funkce org-mode pro sledování času stráveného na úkolech. Konfigurace přidává persistenci a přehledný reporting.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|---------+-------------------+--------------------------|
|
||||||
|
| =, C i= | org-clock-in | Začít měřit |
|
||||||
|
| =, C o= | org-clock-out | Ukončit |
|
||||||
|
| =, C r= | org-clock-report | Tabulka odpracovaného |
|
||||||
|
| =, C d= | org-clock-display | Zobrazit časy v bufferu |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. Na org heading: =, C i= — začne měření
|
||||||
|
2. Pracuj na úkolu
|
||||||
|
3. =, C o= — ukončí měření, zapíše LOGBOOK
|
||||||
|
4. =, C r= — vloží clocktable s přehledem časů
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- =org-clock-persist= ukládá stav přes restart Emacsu
|
||||||
|
- Formát =h:mm= — hodiny a minuty, ne dny
|
||||||
|
- Nulové záznamy se automaticky mažou
|
||||||
|
|
||||||
|
** combobulate — Strukturální editace
|
||||||
|
|
||||||
|
Tree-sitter navigace a editace po syntaktických uzlech. Funguje v Pythonu, Go, JS, TypeScriptu.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|---------+--------------------------------+--------------------------|
|
||||||
|
| =C-M-n= | combobulate-navigate-next | Další sourozenec |
|
||||||
|
| =C-M-p= | combobulate-navigate-previous | Předchozí sourozenec |
|
||||||
|
| =C-M-u= | combobulate-navigate-up | Rodičovský uzel |
|
||||||
|
| =C-M-d= | combobulate-navigate-down | Potomek |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. Otevři Python soubor s funkcemi
|
||||||
|
2. Kurzor na =def= — =C-M-n= přeskočí na další funkci
|
||||||
|
3. =C-M-u= — přejde na třídu obsahující funkci
|
||||||
|
4. =C-M-d= — vstoupí do prvního potomka (první metoda)
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Vyžaduje tree-sitter gramatiky pro daný jazyk
|
||||||
|
- V Go funguje na =func=, =if=, =for= blocích
|
||||||
|
|
||||||
|
** iedit — Editace více výskytů
|
||||||
|
|
||||||
|
Označí všechny výskyty slova pod kurzorem a umožní je editovat simultánně.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+-------------+----------------------------|
|
||||||
|
| =SPC s e= | iedit-mode | Zapnout/vypnout iedit |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. Kurzor na proměnné =counter=
|
||||||
|
2. =SPC s e= — všechny výskyty =counter= se zvýrazní
|
||||||
|
3. Edituj — změna se projeví na všech místech najednou
|
||||||
|
4. =SPC s e= znovu — ukončí iedit
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Pro omezení rozsahu: nejdřív vyber region, pak =SPC s e=
|
||||||
|
- Kombinuj s =C-;= (embark) pro komplexnější refactoring
|
||||||
|
|
||||||
|
** vundo — Vizuální undo
|
||||||
|
|
||||||
|
Zobrazí undo historii jako strom s větvemi. Umožňuje navigovat mezi různými stavy souboru.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|---------+--------+--------------------------|
|
||||||
|
| =SPC u= | vundo | Otevřít undo tree |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. Udělej několik změn v souboru (edituj, undo, edituj jinak)
|
||||||
|
2. =SPC u= — zobrazí se strom s větvemi
|
||||||
|
3. Šipkami naviguj mezi stavy, =RET= potvrdí vybraný stav
|
||||||
|
4. =q= zavře vundo
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Unicode symboly pro přehledný strom (=vundo-unicode-symbols=)
|
||||||
|
- Doom =undo= modul zajišťuje undo-fu — vundo ho doplňuje vizuální navigací
|
||||||
|
|
||||||
|
** breadcrumb — Kontext v header-line
|
||||||
|
|
||||||
|
Zobrazuje aktuální pozici v kódu (funkce, třída, metoda) v header-line bufferu.
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
Automaticky se aktivuje v =prog-mode= a =cperl-mode=. Při navigaci kódem vidíš v horní liště např. =MyClass > my_method > if block=.
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Nepotřebuje LSP — pracuje s imenu
|
||||||
|
- Užitečné při navigaci ve velkých souborech
|
||||||
|
|
||||||
|
* Tier 3 — Doplňkové
|
||||||
|
|
||||||
|
** org-anki — Anki flashcards
|
||||||
|
|
||||||
|
Exportuje org headings jako Anki kartičky. Heading = přední strana, obsah = zadní strana.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|---------+-----------------------+------------------------|
|
||||||
|
| =, A s= | org-anki-sync-entry | Sync aktuální heading |
|
||||||
|
| =, A S= | org-anki-sync-all | Sync vše |
|
||||||
|
| =, A d= | org-anki-delete-entry | Smazat kartičku |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. V org souboru:
|
||||||
|
#+begin_example
|
||||||
|
* Co je CIDR notace?
|
||||||
|
Způsob zápisu IP adres s prefixem sítě, např. 192.168.1.0/24.
|
||||||
|
#+end_example
|
||||||
|
2. =, A s= — sync do Anki decku "Emacs"
|
||||||
|
3. Anki musí běžet s AnkiConnect pluginem
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Výchozí deck: "Emacs" — změň v konfiguraci podle potřeby
|
||||||
|
- Anki + AnkiConnect musí běžet lokálně (port 8765)
|
||||||
|
|
||||||
|
** org-ql — Query language pro org
|
||||||
|
|
||||||
|
Vyhledávání v org souborech pomocí s-expression dotazů. Silnější než org-agenda filtry.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+----------------+--------------------------|
|
||||||
|
| =SPC s q= | org-ql-search | Interaktivní dotaz |
|
||||||
|
| =SPC s Q= | org-ql-view | Uložené pohledy |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC s q= — zadej dotaz:
|
||||||
|
#+begin_example
|
||||||
|
(and (todo "TODO") (tags "work") (deadline :to today))
|
||||||
|
#+end_example
|
||||||
|
2. Zobrazí se všechny pracovní TODO s deadline dnes
|
||||||
|
3. Plain-text syntax funguje taky: =todo:TODO tags:work deadline:to=today=
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Kombinuj s =org-ql-view= pro ukládání častých dotazů
|
||||||
|
- Podporuje regulární výrazy v =regexp= predikátu
|
||||||
|
|
||||||
|
** calfw — Vizuální kalendář
|
||||||
|
|
||||||
|
Zobrazuje org-agenda události v měsíčním kalendáři.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+-------------------------+--------------------|
|
||||||
|
| =SPC o C= | cfw:open-org-calendar | Otevřít kalendář |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC o C= — otevře měsíční pohled
|
||||||
|
2. Šipky pro navigaci mezi dny/týdny
|
||||||
|
3. Události z org-agenda se zobrazí v buňkách
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Po org-caldav sync zobrazí i události z CalDAV serveru
|
||||||
|
- =M= přepne na měsíční, =W= na týdenní pohled
|
||||||
|
|
||||||
|
** org-roam-ui — Graf poznámek
|
||||||
|
|
||||||
|
Webové rozhraní zobrazující graf propojení org-roam poznámek v prohlížeči.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-------------+--------------------+----------------------|
|
||||||
|
| =SPC n r u= | org-roam-ui-mode | Spustit/zastavit UI |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC n r u= — spustí lokální server
|
||||||
|
2. Otevře se prohlížeč s interaktivním grafem
|
||||||
|
3. Kliknutí na uzel otevře poznámku v Emacsu
|
||||||
|
4. Graf se aktualizuje při ukládání souborů
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Synchronizuje téma s Emacsem (=org-roam-ui-sync-theme=)
|
||||||
|
- Sleduje aktuální buffer (=org-roam-ui-follow=)
|
||||||
|
|
||||||
|
** dirvish — Moderní správce souborů
|
||||||
|
|
||||||
|
Nahrazuje dired moderním rozhraním s náhledy, ikonami a git integrací.
|
||||||
|
|
||||||
|
*** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|---------+---------------------------------+--------------------------|
|
||||||
|
| =h= | dired-up-directory | Nahoru |
|
||||||
|
| =l= | dired-find-file | Otevřít |
|
||||||
|
| =s= | dirvish-quicksort | Řazení |
|
||||||
|
| =TAB= | dirvish-subtree-toggle | Rozbalit/sbalit adresář |
|
||||||
|
| =q= | dirvish-quit | Zavřít |
|
||||||
|
| =M-f= | dirvish-history-go-forward | Historie vpřed |
|
||||||
|
| =M-b= | dirvish-history-go-backward | Historie zpět |
|
||||||
|
|
||||||
|
*** Příklad workflow
|
||||||
|
|
||||||
|
1. =SPC .= (find file) nebo =SPC o -= (dired) — dirvish přebírá dired
|
||||||
|
2. =TAB= na adresáři — rozbalí obsah inline (subtree)
|
||||||
|
3. =h/l= navigace jako v rangeru
|
||||||
|
4. Git status se zobrazuje ikonami vedle souborů
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- Atributy zahrnují nerd-icons, git-msg, file-time, file-size
|
||||||
|
- Boční panel: 35 znaků šířka
|
||||||
|
|
||||||
|
* BibTeX / Citar — Správa literatury
|
||||||
|
|
||||||
|
Citar je součástí Doom biblio modulu. Slouží ke správě bibliografických referencí, citací a poznámek k článkům.
|
||||||
|
|
||||||
|
** Instalace a setup
|
||||||
|
|
||||||
|
Citar je nainstalován automaticky (Doom biblio modul v =init.el=). Konfigurace:
|
||||||
|
|
||||||
|
- Bibliografie: =~/org/references.bib=
|
||||||
|
- Poznámky: =~/org/notes/=
|
||||||
|
- PDF články: =~/org/papers/=
|
||||||
|
|
||||||
|
Vytvoř tyto adresáře a =references.bib= soubor:
|
||||||
|
|
||||||
|
#+begin_src shell
|
||||||
|
mkdir -p ~/org/notes ~/org/papers
|
||||||
|
touch ~/org/references.bib
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+------------------------+----------------------|
|
||||||
|
| =SPC b b= | citar-open | Otevřít referenci |
|
||||||
|
| =SPC b i= | citar-insert-citation | Vložit citaci |
|
||||||
|
| =SPC b n= | citar-open-notes | Poznámky k článku |
|
||||||
|
| =SPC b r= | citar-refresh | Obnovit bibliografii |
|
||||||
|
|
||||||
|
** Workflow: citace v org dokumentech
|
||||||
|
|
||||||
|
1. Stáhni BibTeX záznam článku (z Google Scholar, DOI...)
|
||||||
|
2. Vlož do =~/org/references.bib=
|
||||||
|
3. V org dokumentu: =SPC b i= — vyber referenci z minibufferu
|
||||||
|
4. Citar vloží citační klíč: =[cite:@author2024]=
|
||||||
|
|
||||||
|
** Workflow: poznámky k článkům
|
||||||
|
|
||||||
|
1. =SPC b b= — otevře PDF článku z =~/org/papers/=
|
||||||
|
2. =SPC b n= — otevře/vytvoří poznámkový soubor v =~/org/notes/=
|
||||||
|
3. Kombinuj s org-noter pro anotace přímo v PDF
|
||||||
|
|
||||||
|
*** Tipy
|
||||||
|
|
||||||
|
- BibTeX soubory exportuj z Zotero nebo přímo z Google Scholar
|
||||||
|
- =SPC b r= po přidání nových záznamů do =.bib= souboru
|
||||||
|
|
||||||
|
* Grammar check (LanguageTool)
|
||||||
|
|
||||||
|
LanguageTool kontroluje gramatiku a styl textu. Podporuje češtinu.
|
||||||
|
|
||||||
|
** Instalace
|
||||||
|
|
||||||
|
#+begin_src shell
|
||||||
|
# Stáhni LanguageTool
|
||||||
|
mkdir -p ~/languagetool
|
||||||
|
cd ~/languagetool
|
||||||
|
wget https://languagetool.org/download/LanguageTool-stable.zip
|
||||||
|
unzip LanguageTool-stable.zip
|
||||||
|
# JAR musí být na ~/languagetool/languagetool-commandline.jar
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Keybindings
|
||||||
|
|
||||||
|
| Klávesa | Příkaz | Popis |
|
||||||
|
|-----------+----------------------+--------------------------|
|
||||||
|
| =SPC t g= | langtool-check | Zkontrolovat buffer |
|
||||||
|
| =SPC t G= | langtool-check-done | Zrušit zvýraznění |
|
||||||
|
|
||||||
|
** Příklad workflow
|
||||||
|
|
||||||
|
1. Napiš text v org nebo markdown
|
||||||
|
2. =SPC t g= — LanguageTool zvýrazní chyby
|
||||||
|
3. Kurzor na chybu — zobrazí návrh opravy
|
||||||
|
4. =SPC t G= — vyčistí zvýraznění po opravách
|
||||||
|
|
||||||
|
** Tipy
|
||||||
|
|
||||||
|
- Výchozí jazyk: čeština (=cs=)
|
||||||
|
- Pro anglické texty: =M-x langtool-check= s argumentem "en"
|
||||||
|
- Vyžaduje Javu (JRE)
|
||||||
|
|
||||||
|
* Obecné tipy pro kombinaci nástrojů
|
||||||
|
|
||||||
|
- *Refactoring:* =SPC s p= (ripgrep) → =C-c C-p= (wgrep) → edituj → =C-c C-c= uloží do všech souborů
|
||||||
|
- *Org workflow:* org-caldav sync (=SPC o c=) → calfw zobrazení (=SPC o C=) → org-clock měření (=, C i=)
|
||||||
|
- *Studium:* citar otevře článek (=SPC b b=) → org-noter anotace (=SPC o n=) → org-anki kartičky (=, A s=)
|
||||||
|
- *Code navigation:* breadcrumb v header-line + combobulate (=C-M-n/p/u/d=) + iedit (=SPC s e=)
|
||||||
|
- *Kubernetes:* kubel (=SPC o k=) + envrc pro per-project kubeconfig
|
||||||
Reference in New Issue
Block a user