update
This commit is contained in:
377
notes/emacs-new-features.tex
Normal file
377
notes/emacs-new-features.tex
Normal file
@@ -0,0 +1,377 @@
|
||||
% Created 2026-02-23 Mon 20:36
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[a4paper,11pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{rotating}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{capt-of}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{tabularx}
|
||||
\usepackage[czech]{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{microtype}
|
||||
\sloppy
|
||||
\usepackage{helvet}
|
||||
\renewcommand{\familydefault}{\sfdefault}
|
||||
\usepackage[a4paper,margin=2.2cm]{geometry}
|
||||
\usepackage[table,x11names]{xcolor}
|
||||
\definecolor{kyndrylRed}{RGB}{196,0,0}
|
||||
\definecolor{linkcolor}{RGB}{196,0,0}
|
||||
\definecolor{tableOdd}{RGB}{252,252,252}
|
||||
\definecolor{tableEven}{RGB}{237,237,237}
|
||||
\usepackage{hyperref}
|
||||
\hypersetup{colorlinks=true,linkcolor=linkcolor,urlcolor=linkcolor,citecolor=linkcolor,pdfencoding=auto,unicode=true}
|
||||
\usepackage{xurl}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{array}
|
||||
\usepackage{tabularx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{ltablex}
|
||||
\keepXColumns
|
||||
\usepackage{booktabs}
|
||||
\usepackage{colortbl}
|
||||
\usepackage{etoolbox}
|
||||
\usepackage{ragged2e}
|
||||
\AtBeginEnvironment{longtable}{\rowcolors{1}{tableOdd}{tableEven}}
|
||||
\AtBeginEnvironment{tabularx}{\rowcolors{1}{tableOdd}{tableEven}}
|
||||
\AtBeginEnvironment{tabular}{\rowcolors{1}{tableOdd}{tableEven}}
|
||||
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X}
|
||||
\newcolumntype{Z}{>{\Centering\arraybackslash}X}
|
||||
\newcolumntype{R}{>{\RaggedLeft\arraybackslash}X}
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{}
|
||||
\lhead{\small\nouppercase{\leftmark}}
|
||||
\rhead{\small\thepage}
|
||||
\renewcommand{\headrulewidth}{0.4pt}
|
||||
\renewcommand{\headrule}{\hbox to\headwidth{\color{kyndrylRed}\leaders\hrule height \headrulewidth\hfill}}
|
||||
\usepackage{listings}
|
||||
\lstset{backgroundcolor=\color{yellow!20},basicstyle=\ttfamily\small,breaklines=true,frame=single}
|
||||
\author{Martin Sukaný}
|
||||
\date{\today}
|
||||
\title{Nove featury Doom Emacs -- testovaci pruvodce}
|
||||
\hypersetup{
|
||||
pdfauthor={Martin Sukaný},
|
||||
pdftitle={Nove featury Doom Emacs -- testovaci pruvodce},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 31.0.50 (Org mode 9.7.11)},
|
||||
pdflang={Czech}}
|
||||
\usepackage{biblatex}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\setcounter{tocdepth}{2}
|
||||
\tableofcontents
|
||||
|
||||
Tento dokument popisuje vsechny nove featury pridane do konfigurace.
|
||||
Po kazde zmene je nutny \texttt{doom sync} + restart Emacsu.
|
||||
\section{Prerekvizity}
|
||||
\label{sec:org41542c8}
|
||||
|
||||
Nez testuje cokoli:
|
||||
|
||||
\begin{verbatim}
|
||||
cd ~/.doom.d
|
||||
doom sync
|
||||
\end{verbatim}
|
||||
|
||||
Pak restartuj Emacs. Bez toho nove balicky nejsou dostupne.
|
||||
\section{1. link-hint -- otevirani odkazu bez mysi}
|
||||
\label{sec:org2649830}
|
||||
|
||||
Co dela: zvyrazni vsechny viditelne org-format odkazy v bufferu a prirad jim
|
||||
jednopismenne zkratky. Stisknutim pismene odkaz otevres nebo zkopirujes URL.
|
||||
|
||||
Prerekvizita: \texttt{doom sync} dokoncen, soubor musi obsahovat \texttt{[[...]]} odkazy.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri org soubor ktery ma \texttt{[[https://example.com]]} nebo \texttt{[[file:inbox.org]]} odkazy
|
||||
\item Stiskni \texttt{SPC j k} -- link-hint zvyrazni viditelne odkazy
|
||||
\item Stiskni pismeno vedle odkazu -- odkaz se otevri
|
||||
\item Pro kopiovani URL: \texttt{SPC j K}
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Dulezite:} 'No links' je spravna hlaska kdyz buffer nema zadny \texttt{[[...]]} odkaz
|
||||
viditelny na obrazovce. Index.org bez explicitu odkazu = zadne linky. Funguje
|
||||
spravne -- neni to chyba.
|
||||
|
||||
Priklady odkazu ktere link-hint najde:
|
||||
\begin{itemize}
|
||||
\item \texttt{[[https://example.com][Odkaz]]} -- HTTP odkaz
|
||||
\item \texttt{[[file:inbox.org]]} -- soubor
|
||||
\item \texttt{[[*Nadpis]]} -- interni odkaz v dokumentu
|
||||
\end{itemize}
|
||||
\section{2. Avy -- skok na libovolne misto v bufferu}
|
||||
\label{sec:orgaaaa8c5}
|
||||
|
||||
Co dela: zvyrazni kazdy vyskyt dvou zadanych znaku a skoci na vybrane
|
||||
misto bez pohybu mysi.
|
||||
|
||||
Prerekvizita: Doom ma avy automaticky -- dostupny bez doom sync.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri soubor s textem
|
||||
\item Stiskni \texttt{SPC j j} -- zadej dva znaky (napr. \texttt{th}) -- Avy zvyrazni shody
|
||||
\item Stiskni pismeno u ciloveho vyskytu -- kurzor skoci tam
|
||||
\item Pro skok na radek: \texttt{SPC j l} -- zadej pismeno u radku
|
||||
\end{enumerate}
|
||||
|
||||
Overeni: kurzor preskoci na vybranou pozici bez scrollovani.
|
||||
\section{3. olivetti-mode -- klidny distraction-free mod}
|
||||
\label{sec:orgf4fb172}
|
||||
|
||||
Co dela: horizontalne centruje text na sirku 90 znaku. Zapina se \textbf{rucne} --
|
||||
automaticke zapinani by rozbilo corfu completion popup.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, balik \texttt{olivetti} nainstalovan.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri org nebo Markdown soubor
|
||||
\item Stiskni \texttt{SPC t o} -- text se vycentruje na stred okna
|
||||
\item Stiskni \texttt{SPC t o} znovu -- vrati se do normalniho layoutu
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Upozorneni:} Pokud zapnes olivetti a corfu popup zmizi nebo se zobrazi
|
||||
mimo obrazovku, vypni olivetti. Olivetti meni vizualni marginy a corfu
|
||||
pak pocita spatne souradnice popupu.
|
||||
\section{4. org-modern -- vylepseny vizual org-mode}
|
||||
\label{sec:orgd88f5be}
|
||||
|
||||
Co dela: nahradi hvezdicky u nadpisu Unicode symboly (okrouhlymi tvary),
|
||||
zvyrazni checkboxy. Aktivuje se automaticky po loadu org-modern balicku.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, balik \texttt{org-modern} nainstalovan.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri libovolny \texttt{.org} soubor (napr. inbox.org)
|
||||
\item Nadpisy by mely mit jinak vyzerajici hvezdicky
|
||||
\item Checkboxy \texttt{[ ]} a \texttt{[X]} vypadaji jinak
|
||||
\end{enumerate}
|
||||
|
||||
Pokud org-modern nefunguje na uz otevreny soubor: spust \texttt{M-x org-modern-mode}
|
||||
rucne nebo zavre a znovu otevri soubor. Konfigu zajistuje aktivaci i pro uz
|
||||
otevrene buffery pri loadu balicku.
|
||||
|
||||
Overeni org exportu (klicove):
|
||||
\begin{enumerate}
|
||||
\item Otevri org soubor s tabulkou a nadpisy
|
||||
\item \texttt{SPC m e l o} nebo \texttt{C-c C-e l o} -- PDF export
|
||||
\item Export musi probehnou bez chyby
|
||||
\item \texttt{org-modern-table} je vypnuto -- tabulkove overlaye by mohly interferovat
|
||||
\end{enumerate}
|
||||
\section{5. org-fragtog -- automaticky nahled \LaTeX{} fragmentu}
|
||||
\label{sec:org5bae01c}
|
||||
|
||||
Co dela: kdyz kurzor vstoupi do \LaTeX{} fragmentu (\texttt{\$E=mc\textasciicircum{}2\$}), zobrazi
|
||||
ho jako obrazek; kdyz kurzor odejde, fragment zustane jako obrazek.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, \texttt{org-fragtog} nainstalovan, funkci \texttt{dvipng}
|
||||
nebo \texttt{imagemagick}: \texttt{brew install imagemagick}.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri org soubor
|
||||
\item Napis \texttt{\$E = mc\textasciicircum{}2\$}
|
||||
\item Pohni kurzorem ven z fragmentu -- mel by se zobrazit jako obrazek
|
||||
\item Pohni kurzorem dovnitr -- obrazek zmizi, zobrazi se zdrojovy kod
|
||||
\end{enumerate}
|
||||
|
||||
Pokud dvipng neni dostupny, org-fragtog selze tise. Zkontroluj:
|
||||
\texttt{M-x org-toggle-latex-fragment}
|
||||
\section{6. org-super-agenda -- skupiny v agenda view}
|
||||
\label{sec:org138b653}
|
||||
|
||||
Co dela: rozdeli org agenda view do skupin: Dnes, Cekam, Kyndryl, ZTJ, Ostatni.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, \texttt{org-super-agenda} nainstalovan.
|
||||
|
||||
Skupiny:
|
||||
\begin{itemize}
|
||||
\item \textbf{Dnes}: polozky se SCHEDULED nebo DEADLINE dnes
|
||||
\item \textbf{Cekam}: polozky s TODO stavem WAIT
|
||||
\item \textbf{Kyndryl}: tag \texttt{:kyndryl:} nebo \texttt{:work:}
|
||||
\item \textbf{ZTJ}: tag \texttt{:ztj:}
|
||||
\item \textbf{Ostatni}: vsechno co nezapadne do predchozich skupin
|
||||
\end{itemize}
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri org agenda: \texttt{SPC o A} nebo \texttt{C-c a a}
|
||||
\item Agenda by mela zobrazovat skupiny s nazvy
|
||||
\item Polozky s TODO \texttt{WAIT} ve skupine "Cekam"
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Pokud agenda zobrazuje prazdnou stranku:} Spust \texttt{M-x org-super-agenda-mode}
|
||||
pro aktivaci, nebo zkontroluj ze \texttt{doom sync} byl dokoncen.
|
||||
\section{7. org-noter -- anotace PDF v org-mode}
|
||||
\label{sec:orgc5d7d77}
|
||||
|
||||
Co dela: propojuje PDF soubor s org souborem poznamek. Strankovani je synchronizovano.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, \texttt{org-noter} nainstalovan, PDF otvira se v pdf-view.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri PDF soubor -- mel by se otevrit v pdf-view, ne v Preview
|
||||
\item Stiskni \texttt{SPC o n} -- spusti org-noter session
|
||||
\item Posouvej PDF -- org soubor se synchronizuje s aktualni strankou
|
||||
\item Pridej poznamku: \texttt{SPC o N} -- vlozi org heading s pozici v PDF
|
||||
\end{enumerate}
|
||||
|
||||
Overeni: org heading obsahuje \texttt{:NOTER\_PAGE:} property.
|
||||
\section{8. GPTel -- rewrite regionu a org heading}
|
||||
\label{sec:orgf0ea4ea}
|
||||
|
||||
Co dela:
|
||||
\begin{itemize}
|
||||
\item \texttt{SPC o g r} -- posle oznaceny region do GPTel s instrukci "vyleps text"
|
||||
a nahradi ho odpovedi
|
||||
\item \texttt{SPC o g p} -- posle obsah aktualu org headingu jako kontext do GPTel chatu
|
||||
\end{itemize}
|
||||
|
||||
Prerekvizita: gptel funkci (\texttt{SPC o g g} otevira chat).
|
||||
|
||||
Jak testovat (rewrite):
|
||||
\begin{enumerate}
|
||||
\item Otevri soubor s textem
|
||||
\item Oznac region (visual mode: \texttt{v})
|
||||
\item \texttt{SPC o g r} -- pockat -- region se nahradi vylepsenim
|
||||
\item Zprava: \texttt{GPTel: text vylepsen} v minibufferu
|
||||
\end{enumerate}
|
||||
|
||||
Jak testovat (org heading):
|
||||
\begin{enumerate}
|
||||
\item Otevri org soubor
|
||||
\item Postav kurzor do headingu
|
||||
\item \texttt{SPC o g p} -- obsah headingu odeslan do GPTel chatu
|
||||
\end{enumerate}
|
||||
\section{9. git-link -- kopiovani URL na Gitea}
|
||||
\label{sec:org8936aac}
|
||||
|
||||
Co dela: zkopiruje URL aktualniho souboru/radku na Gitea do clipboardu.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, soubor musi byt v git repo s remote na Gitea.
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri soubor v emacs-doom nebo jinem Gitea repo
|
||||
\item Postav kurzor na konkretni radek
|
||||
\item \texttt{SPC g y} -- URL zkopirovna do clipboardu
|
||||
\item Zkontroluj: \texttt{pbpaste} v terminalu
|
||||
\end{enumerate}
|
||||
|
||||
Overeni: URL odpovida aktualnimu souboru a radku na git.apps.sukany.cz.
|
||||
\section{10. Forge -- Gitea integrace v Magit}
|
||||
\label{sec:org2546e94}
|
||||
|
||||
Co dela: pridava pull request a issue management do Magit.
|
||||
|
||||
Prerekvizita: \texttt{doom sync}, API token v \texttt{\textasciitilde{}/.authinfo}.
|
||||
|
||||
Nastaveni tokenu:
|
||||
\begin{enumerate}
|
||||
\item Prihlasit se na \texttt{https://git.apps.sukany.cz}
|
||||
\item Settings -> Applications -> Generate new token (scope: \texttt{repo})
|
||||
\item Pridat do \texttt{\textasciitilde{}/.authinfo}:
|
||||
\begin{verbatim}
|
||||
machine git.apps.sukany.cz login daneel^forge password <TOKEN>
|
||||
\end{verbatim}
|
||||
\item \texttt{chmod 600 \textasciitilde{}/.authinfo}
|
||||
\end{enumerate}
|
||||
|
||||
Jak testovat:
|
||||
\begin{enumerate}
|
||||
\item Otevri Magit: \texttt{SPC g g}
|
||||
\item Stiskni \texttt{@} -- Forge menu
|
||||
\item \texttt{@ f} -- fetch forge data (PRy, issues)
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Poznamka:} Bez tokenu Forge selze s chybou autentizace (ocekavane chovani).
|
||||
\section{Prehled klaves}
|
||||
\label{sec:org2597f1d}
|
||||
|
||||
\begin{center}
|
||||
\begin{tabularx}{\linewidth}{lY}
|
||||
Klavesa & Funkce\\
|
||||
\hline
|
||||
SPC j k & link-hint -- otevri odkaz\\
|
||||
SPC j K & link-hint -- kopiruj URL\\
|
||||
SPC j j & avy-goto-char-2\\
|
||||
SPC j l & avy-goto-line\\
|
||||
SPC t o & olivetti-mode toggle\\
|
||||
SPC o n & org-noter\\
|
||||
SPC o N & org-noter-insert-note\\
|
||||
SPC o g r & GPTel rewrite region\\
|
||||
SPC o g p & GPTel org heading -> kontext\\
|
||||
SPC g y & git-link (kopiruj URL)\\
|
||||
SPC g Y & git-link-commit\\
|
||||
\end{tabularx}
|
||||
\end{center}
|
||||
\section{Reseni problemu}
|
||||
\label{sec:orgac7a8e9}
|
||||
|
||||
\subsection{link-hint rika 'No links'}
|
||||
\label{sec:org92019e7}
|
||||
Normalni chovani kdyz buffer nema zadny \texttt{[[...]]} odkaz viditelny na obrazovce.
|
||||
Testuj na org souboru ktery obsahuje \texttt{[[https://...]]} nebo \texttt{[[file:...]]} linky.
|
||||
\subsection{corfu nefunguje po olivetti}
|
||||
\label{sec:orgdd696ee}
|
||||
Vypni olivetti (\texttt{SPC t o}). Olivetti meni vizualni marginy, corfu popup pak
|
||||
ma spatne souradnice.
|
||||
\subsection{org-modern nefunguje}
|
||||
\label{sec:org53299b3}
|
||||
Spust \texttt{doom sync} + restartuj Emacs. Pokud stale ne: \texttt{M-x org-modern-mode}
|
||||
nebo zavre a otevri soubor znovu.
|
||||
\subsection{org export selze s Unicode varovanim}
|
||||
\label{sec:orgdec002a}
|
||||
Zkontroluj svuj .org soubor na Unicode znaky mimo Latin-1:
|
||||
\begin{verbatim}
|
||||
python3 -c "
|
||||
with open('tvuj-soubor.org') as f:
|
||||
for i, line in enumerate(f, 1):
|
||||
for ch in line:
|
||||
if ord(ch) > 255:
|
||||
print(f'radek {i}: U+{ord(ch):04X} {repr(ch)}')
|
||||
break
|
||||
"
|
||||
\end{verbatim}
|
||||
Smazani nebo nahrazeni techto znaku vyresi problem.
|
||||
\subsection{org-super-agenda zobrazuje prazdnou agendu}
|
||||
\label{sec:org5c2473b}
|
||||
Spust \texttt{M-x org-super-agenda-mode} pro rucni aktivaci.
|
||||
Zkontroluj ze org soubory maji polozky se SCHEDULED nebo DEADLINE.
|
||||
\subsection{Forge: 'Invalid token'}
|
||||
\label{sec:org6acb14e}
|
||||
Zkontroluj format \texttt{\textasciitilde{}/.authinfo} -- zadne uvozovky, zadne mezery navic:
|
||||
\begin{verbatim}
|
||||
machine git.apps.sukany.cz login daneel^forge password TOKEN
|
||||
\end{verbatim}
|
||||
\section{emacs-new-features}
|
||||
\label{sec:org2d1ff3e}
|
||||
\subsection{first note}
|
||||
\label{sec:orgef2818c}
|
||||
\subsection{Testovaci poznamka - prvni stranka}
|
||||
\label{sec:orgcbd1095}
|
||||
Tady zacina ta prvni stranka
|
||||
\begin{itemize}
|
||||
\item tak tady par poznamek
|
||||
\item nova odrazka
|
||||
\end{itemize}
|
||||
\subsection{Olivetti mode je na strance 3, melo by to byt ok}
|
||||
\label{sec:org72cfac7}
|
||||
\subsection{Prehled klaves je tady}
|
||||
\label{sec:orge56be61}
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user