Files
ApolloNvim2025/web/html/zkratky.html
T
2026-05-16 00:27:47 +02:00

1494 lines
68 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>⌨️ Klávesové zkratky | ApolloNvim</title>
<!-- Meta description & SEO -->
<meta
name="description"
content="Kompletní přehled klávesových zkratek Neovim a ApolloNvim. Pohyb, módy, editace, příkazy, vyhledávání a speciální zkratky na jednom místě."
/>
<meta name="author" content="Lukáš Kaňka" />
<meta
name="keywords"
content="ApolloNvim, Neovim, klávesové zkratky, vim zkratky, keyboard shortcuts, normal mode, insert mode"
/>
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta
property="og:url"
content="https://apollo-nvim.lukan.cz/zkratky.html"
/>
<meta property="og:title" content="⌨️ Klávesové zkratky | ApolloNvim" />
<meta
property="og:description"
content="Kompletní přehled klávesových zkratek Neovim a ApolloNvim na jednom místě."
/>
<meta property="og:image" content="../img/apollonvim.jpg" />
<meta property="og:locale" content="cs_CZ" />
<meta property="og:site_name" content="ApolloNvim" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="⌨️ Klávesové zkratky | ApolloNvim"
/>
<meta
name="twitter:description"
content="Kompletní přehled klávesových zkratek Neovim a ApolloNvim."
/>
<meta name="twitter:image" content="../img/apollonvim.jpg" />
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
rel="stylesheet"
/>
<!-- Stylesheets -->
<link rel="stylesheet" href="../css/style.css" />
<link rel="stylesheet" href="../css/animations.css" />
<!-- Canonical -->
<link
rel="canonical"
href="https://apollo-nvim.lukan.cz/zkratky.html"
/>
<style>
/* ── Tab system ── */
.sc-tabs {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
margin-bottom: 2.5rem;
border-bottom: 1px solid var(--border);
padding-bottom: 0;
}
.sc-tab-btn {
background: none;
border: none;
border-bottom: 2px solid transparent;
color: var(--text-muted);
font-family: var(--font-sans, "Inter", sans-serif);
font-size: 0.9rem;
font-weight: 600;
padding: 0.65rem 1.1rem;
cursor: pointer;
transition:
color var(--transition),
border-color var(--transition);
margin-bottom: -1px;
letter-spacing: 0.02em;
}
.sc-tab-btn:hover {
color: var(--text-primary);
}
.sc-tab-btn[aria-selected="true"] {
color: var(--purple);
border-bottom-color: var(--purple);
}
.sc-panel {
display: none;
}
.sc-panel[aria-hidden="false"] {
display: block;
}
/* ── Section headings inside tabs ── */
.sc-section {
margin-bottom: 3rem;
}
.sc-section__title {
font-size: 1.1rem;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 1rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
.sc-section__title::before {
content: "";
display: inline-block;
width: 3px;
height: 1em;
background: var(--purple);
border-radius: 99px;
}
/* ── Shortcuts table ── */
.sc-table-wrap {
overflow-x: auto;
border-radius: var(--radius-lg);
border: 1px solid var(--border);
}
.sc-table {
width: 100%;
border-collapse: collapse;
font-size: 0.875rem;
}
.sc-table thead {
background: rgba(139, 92, 246, 0.07);
}
.sc-table th {
text-align: left;
padding: 0.8rem 1.1rem;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.07em;
text-transform: uppercase;
color: var(--text-muted);
border-bottom: 1px solid var(--border);
white-space: nowrap;
}
.sc-table td {
padding: 0.75rem 1.1rem;
color: var(--text-muted);
border-bottom: 1px solid var(--border);
line-height: 1.5;
vertical-align: middle;
}
.sc-table tr:last-child td {
border-bottom: none;
}
.sc-table tbody tr {
transition: background var(--transition);
}
.sc-table tbody tr:hover {
background: rgba(139, 92, 246, 0.04);
}
.sc-table td:first-child {
width: 38%;
}
/* ── kbd styling ── */
kbd {
display: inline-flex;
align-items: center;
gap: 0.15rem;
background: var(--surface);
border: 1px solid var(--border);
border-bottom: 2px solid var(--border);
border-radius: 5px;
padding: 0.15em 0.45em;
font-family: var(--font-mono);
font-size: 0.8em;
font-weight: 600;
color: var(--text-primary);
white-space: nowrap;
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}
.key-sep {
color: var(--text-muted);
font-size: 0.75rem;
margin: 0 0.15rem;
}
/* ── Mode flow diagram ── */
.mode-flow {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0;
margin-bottom: 1.75rem;
padding: 1.25rem 1.5rem;
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
overflow-x: auto;
}
.mode-node {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.3rem;
flex-shrink: 0;
}
.mode-node__box {
padding: 0.45rem 1rem;
border-radius: var(--radius-sm, 6px);
font-family: var(--font-mono);
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.05em;
border: 2px solid;
}
.mode-node__box--normal {
background: rgba(139, 92, 246, 0.12);
border-color: var(--purple);
color: var(--purple);
}
.mode-node__box--insert {
background: rgba(6, 182, 212, 0.1);
border-color: var(--cyan);
color: var(--cyan);
}
.mode-node__box--visual {
background: rgba(236, 72, 153, 0.1);
border-color: var(--pink, #ec4899);
color: var(--pink, #ec4899);
}
.mode-node__box--command {
background: rgba(234, 179, 8, 0.1);
border-color: var(--yellow, #eab308);
color: var(--yellow, #eab308);
}
.mode-node__hint {
font-size: 0.65rem;
color: var(--text-muted);
font-family: var(--font-mono);
}
.mode-arrow {
display: flex;
flex-direction: column;
align-items: center;
padding: 0 0.5rem;
color: var(--text-muted);
font-size: 0.65rem;
flex-shrink: 0;
gap: 0.15rem;
}
.mode-arrow__sym {
font-size: 1rem;
color: var(--border);
}
/* ── Intro card ── */
.intro-card {
background: var(--surface);
border: 1px solid var(--border);
border-left: 4px solid var(--purple);
border-radius: var(--radius-lg);
padding: 1.25rem 1.5rem;
font-size: 0.95rem;
color: var(--text-muted);
line-height: 1.7;
margin-bottom: 3rem;
}
/* ── Print CTA ── */
.print-cta {
text-align: center;
padding: 3rem 2rem;
background: linear-gradient(
135deg,
rgba(139, 92, 246, 0.07) 0%,
rgba(6, 182, 212, 0.04) 100%
);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
}
.print-cta__title {
font-size: 1.3rem;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 0.6rem;
}
.print-cta__subtitle {
font-size: 0.9rem;
color: var(--text-muted);
margin-bottom: 1.5rem;
}
/* Animate on scroll */
.animate-on-scroll {
opacity: 0;
transform: translateY(20px);
transition:
opacity 0.5s ease,
transform 0.5s ease;
}
.animate-on-scroll.visible {
opacity: 1;
transform: translateY(0);
}
/* ── Print styles ── */
@media print {
.navbar,
.hero,
.print-cta,
.footer,
.sc-tabs {
display: none !important;
}
.sc-panel {
display: block !important;
}
body {
background: white;
color: black;
}
.sc-table-wrap {
border: 1px solid #ccc;
}
.sc-table th,
.sc-table td {
border-color: #ccc;
}
kbd {
border: 1px solid #999;
background: #f5f5f5;
color: #111;
box-shadow: none;
}
}
</style>
</head>
<body>
<!-- ===================== NAVBAR ===================== -->
<header class="navbar" id="navbar">
<nav class="navbar__inner" aria-label="Hlavní navigace">
<a
href="../index.html"
class="navbar__logo"
aria-label="ApolloNvim – Domů"
>🚀 <span>ApolloNvim</span></a
>
<ul class="navbar__links" id="nav-links" role="list">
<li><a href="../index.html">Domů</a></li>
<li><a href="./instalace.html">Instalace</a></li>
<li><a href="./pluginy.html">Pluginy</a></li>
<li><a href="./tutorialy.html">Tutoriály</a></li>
<li><a href="./novinky.html">Novinky</a></li>
<li>
<a
href="./zkratky.html"
class="active"
aria-current="page"
>Zkratky</a
>
</li>
</ul>
<button
id="hamburger"
class="navbar__hamburger"
aria-label="Otevřít menu"
aria-expanded="false"
aria-controls="mobile-menu"
>
<span></span><span></span><span></span>
</button>
</nav>
<div class="navbar__mobile" id="mobile-menu" hidden>
<ul role="list">
<li><a href="../index.html">Domů</a></li>
<li><a href="./instalace.html">Instalace</a></li>
<li><a href="./pluginy.html">Pluginy</a></li>
<li><a href="./tutorialy.html">Tutoriály</a></li>
<li><a href="./novinky.html">Novinky</a></li>
<li><a href="./zkratky.html" class="active">Zkratky</a></li>
</ul>
</div>
</header>
<main id="main-content">
<!-- ===================== HERO ===================== -->
<section
class="hero"
aria-labelledby="hero-title"
style="min-height: 42vh"
>
<canvas id="particles-canvas" aria-hidden="true"></canvas>
<div
class="hero__content"
style="padding-top: 6rem; padding-bottom: 4rem"
>
<div class="hero__badge">
<span>⌨️ Cheatsheet</span>
</div>
<h1 id="hero-title" class="hero__title">
Klávesové zkratky
</h1>
<p class="hero__subtitle">
Přehled výchozích klávesových zkratek Neovim
</p>
</div>
</section>
<!-- ===================== CONTENT ===================== -->
<section class="section" aria-label="Klávesové zkratky">
<div class="container">
<!-- Intro -->
<p class="intro-card animate-on-scroll">
<strong>Neovim</strong> je moderní verze Vim. Zvládnutí
klávesových zkratek je klíčem k efektivní práci – ruce
zůstávají na klávesnici a každá operace má svůj přesný
příkaz. Chvíli to trvá, ale vrátí se to stonásobně.
</p>
<!-- Tab navigation -->
<div
class="sc-tabs"
role="tablist"
aria-label="Kategorie zkratek"
>
<button
class="sc-tab-btn"
role="tab"
aria-selected="true"
aria-controls="panel-zakladni"
id="tab-zakladni"
>
Základní
</button>
<button
class="sc-tab-btn"
role="tab"
aria-selected="false"
aria-controls="panel-pokrocile"
id="tab-pokrocile"
>
Pokročilé
</button>
<button
class="sc-tab-btn"
role="tab"
aria-selected="false"
aria-controls="panel-apollo"
id="tab-apollo"
>
🚀 ApolloNvim zkratky
</button>
</div>
<!-- ══════════════════════════════════
PANEL 1 – ZÁKLADNÍ
═══════════════════════════════════ -->
<div
id="panel-zakladni"
role="tabpanel"
aria-labelledby="tab-zakladni"
aria-hidden="false"
class="sc-panel"
>
<!-- Pohyb -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">🧭 Pohyb</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Klávesové zkratky pro pohyb"
>
<thead>
<tr>
<th scope="col">Klávesa</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>h</kbd></td>
<td>Pohyb vlevo</td>
</tr>
<tr>
<td><kbd>j</kbd></td>
<td>Pohyb dolů</td>
</tr>
<tr>
<td><kbd>k</kbd></td>
<td>Pohyb nahoru</td>
</tr>
<tr>
<td><kbd>l</kbd></td>
<td>Pohyb vpravo</td>
</tr>
<tr>
<td><kbd>w</kbd></td>
<td>
Přesun na začátek dalšího slova
</td>
</tr>
<tr>
<td><kbd>b</kbd></td>
<td>
Přesun na začátek předchozího
slova
</td>
</tr>
<tr>
<td><kbd>g</kbd><kbd>g</kbd></td>
<td>Přesun na začátek dokumentu</td>
</tr>
<tr>
<td><kbd>G</kbd></td>
<td>Přesun na konec dokumentu</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Módy -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">🔄 Módy</h2>
<!-- Mode flow diagram -->
<div
class="mode-flow"
aria-label="Diagram přechodu mezi módy Neovim"
>
<div class="mode-node">
<div
class="mode-node__box mode-node__box--normal"
>
NORMAL
</div>
<span class="mode-node__hint">výchozí</span>
</div>
<div class="mode-arrow" aria-hidden="true">
<span class="mode-arrow__sym">⇄</span>
<span>i / ESC</span>
</div>
<div class="mode-node">
<div
class="mode-node__box mode-node__box--insert"
>
INSERT
</div>
<span class="mode-node__hint">i, a, o</span>
</div>
<div class="mode-arrow" aria-hidden="true">
<span class="mode-arrow__sym">⇄</span>
<span>v / ESC</span>
</div>
<div class="mode-node">
<div
class="mode-node__box mode-node__box--visual"
>
VISUAL
</div>
<span class="mode-node__hint">v, V</span>
</div>
<div class="mode-arrow" aria-hidden="true">
<span class="mode-arrow__sym">⇄</span>
<span>: / ESC</span>
</div>
<div class="mode-node">
<div
class="mode-node__box mode-node__box--command"
>
COMMAND
</div>
<span class="mode-node__hint">:</span>
</div>
</div>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Klávesové zkratky pro přepínání módů"
>
<thead>
<tr>
<th scope="col">Klávesa</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>ESC</kbd></td>
<td>Přepnutí do NORMAL módu</td>
</tr>
<tr>
<td><kbd>i</kbd></td>
<td>INSERT – vložit před kurzor</td>
</tr>
<tr>
<td><kbd>I</kbd></td>
<td>
INSERT – vložit na začátek řádku
</td>
</tr>
<tr>
<td><kbd>a</kbd></td>
<td>INSERT – vložit za kurzor</td>
</tr>
<tr>
<td><kbd>A</kbd></td>
<td>
INSERT – vložit na konec řádku
</td>
</tr>
<tr>
<td><kbd>v</kbd></td>
<td>Přepnutí do VISUAL módu</td>
</tr>
<tr>
<td>
<kbd>Shift</kbd
><span class="key-sep">+</span
><kbd>:</kbd>
</td>
<td>Přepnutí do COMMAND módu</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Editace v NORMAL módu -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
✏️ Editace v NORMAL módu
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Klávesové zkratky pro editaci"
>
<thead>
<tr>
<th scope="col">Klávesa</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td><kbd>d</kbd><kbd>d</kbd></td>
<td>Smazání celého řádku</td>
</tr>
<tr>
<td><kbd>d</kbd><kbd>w</kbd></td>
<td>Smazání slova</td>
</tr>
<tr>
<td><kbd>y</kbd><kbd>y</kbd></td>
<td>Kopírování řádku (yank)</td>
</tr>
<tr>
<td><kbd>p</kbd></td>
<td>Vložení pod kurzor</td>
</tr>
<tr>
<td><kbd>P</kbd></td>
<td>Vložení před kurzor</td>
</tr>
<tr>
<td><kbd>u</kbd></td>
<td>Vrácení změny (undo)</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>r</kbd>
</td>
<td>Krok vpřed (redo)</td>
</tr>
<tr>
<td><kbd>.</kbd></td>
<td>
Opakování posledního příkazu
</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>w</kbd>
</td>
<td>Přepínání mezi okny</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Vyhledávání -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">🔍 Vyhledávání</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Klávesové zkratky pro vyhledávání"
>
<thead>
<tr>
<th scope="col">
Klávesa / Příkaz
</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kbd>/</kbd><code>text</code>
</td>
<td>Vyhledání textu dopředu</td>
</tr>
<tr>
<td><kbd>n</kbd></td>
<td>Přechod na další výskyt</td>
</tr>
<tr>
<td><kbd>N</kbd></td>
<td>Přechod na předchozí výskyt</td>
</tr>
<tr>
<td><code>:s/old/new/g</code></td>
<td>
Nahrazení textu v celém
dokumentu
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- /#panel-zakladni -->
<!-- ══════════════════════════════════
PANEL 2 – POKROČILÉ
═══════════════════════════════════ -->
<div
id="panel-pokrocile"
role="tabpanel"
aria-labelledby="tab-pokrocile"
aria-hidden="true"
class="sc-panel"
>
<!-- Command mód -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
💻 Command mód <kbd>:</kbd>
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Příkazy command módu"
>
<thead>
<tr>
<th scope="col">Příkaz</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>:e název</code></td>
<td>Vytvoří / otevře soubor</td>
</tr>
<tr>
<td><code>:w</code></td>
<td>Uložení souboru</td>
</tr>
<tr>
<td><code>:q</code></td>
<td>Zavření editoru</td>
</tr>
<tr>
<td><code>:wq</code></td>
<td>Uložení a zavření</td>
</tr>
<tr>
<td><code>:q!</code></td>
<td>
Zavření bez uložení (vynucené)
</td>
</tr>
<tr>
<td><code>:vs</code></td>
<td>Vertikální rozdělení okna</td>
</tr>
<tr>
<td><code>:sp</code></td>
<td>Horizontální rozdělení okna</td>
</tr>
<tr>
<td><code>:colorscheme</code></td>
<td>Změna barevného tématu</td>
</tr>
<tr>
<td><code>:term</code></td>
<td>
Otevření integrovaného terminálu
</td>
</tr>
<tr>
<td><code>:PlugInstall</code></td>
<td>
Instalace pluginů přes vim-plug
</td>
</tr>
<tr>
<td><code>:CocInstall</code></td>
<td>
Instalace rozšíření přes
Coc.nvim
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Pokročilá editace -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
⚡ Pokročilá editace
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Pokročilé zkratky pro editaci"
>
<thead>
<tr>
<th scope="col">Klávesa</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kbd>c</kbd><kbd>i</kbd
><kbd>w</kbd>
</td>
<td>
Změna celého slova pod kurzorem
</td>
</tr>
<tr>
<td>
<kbd>c</kbd><kbd>i</kbd
><kbd>"</kbd>
</td>
<td>Změna obsahu uvozovek</td>
</tr>
<tr>
<td>
<kbd>d</kbd><kbd>i</kbd
><kbd>(</kbd>
</td>
<td>Smazání obsahu závorek</td>
</tr>
<tr>
<td>
<kbd>y</kbd><kbd>i</kbd
><kbd>{</kbd>
</td>
<td>
Kopírování obsahu složených
závorek
</td>
</tr>
<tr>
<td><kbd>V</kbd></td>
<td>
VISUAL mód – výběr celých řádků
</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>v</kbd>
</td>
<td>
VISUAL BLOCK mód – sloupcový
výběr
</td>
</tr>
<tr>
<td><kbd>%</kbd></td>
<td>Skok na párovou závorku</td>
</tr>
<tr>
<td><kbd>*</kbd></td>
<td>
Vyhledání slova pod kurzorem
</td>
</tr>
<tr>
<td><kbd>q</kbd><kbd>a</kbd></td>
<td>
Zahájení nahrávání makra do
registru a
</td>
</tr>
<tr>
<td><kbd>@</kbd><kbd>a</kbd></td>
<td>Přehrání makra z registru a</td>
</tr>
<tr>
<td><kbd>z</kbd><kbd>z</kbd></td>
<td>
Vycentrování kurzoru na
obrazovce
</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>o</kbd>
</td>
<td>Skok zpět v historii pozic</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>i</kbd>
</td>
<td>Skok vpřed v historii pozic</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Okna a záložky -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
🪟 Okna a záložky (Buffers)
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Zkratky pro správu oken a záložek"
>
<thead>
<tr>
<th scope="col">
Klávesa / Příkaz
</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>w</kbd> <kbd>h/j/k/l</kbd>
</td>
<td>
Pohyb mezi okny
(vlevo/dolů/nahoru/vpravo)
</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>w</kbd> <kbd>=</kbd>
</td>
<td>Vyrovnání velikosti oken</td>
</tr>
<tr>
<td><code>:tabnew</code></td>
<td>Otevření nové záložky</td>
</tr>
<tr>
<td><kbd>g</kbd><kbd>t</kbd></td>
<td>Přechod na další záložku</td>
</tr>
<tr>
<td><kbd>g</kbd><kbd>T</kbd></td>
<td>
Přechod na předchozí záložku
</td>
</tr>
<tr>
<td><code>:bn</code></td>
<td>Přechod na další buffer</td>
</tr>
<tr>
<td><code>:bp</code></td>
<td>Přechod na předchozí buffer</td>
</tr>
<tr>
<td><code>:bd</code></td>
<td>Zavření aktuálního bufferu</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- /#panel-pokrocile -->
<!-- ══════════════════════════════════
PANEL 3 – APOLLONVIM
═══════════════════════════════════ -->
<div
id="panel-apollo"
role="tabpanel"
aria-labelledby="tab-apollo"
aria-hidden="true"
class="sc-panel"
>
<!-- Apollo zkratky -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
🚀 ApolloNvim speciální zkratky
</h2>
<p
style="
font-size: 0.875rem;
color: var(--text-muted);
margin-bottom: 1.25rem;
line-height: 1.6;
"
>
Tyto zkratky jsou specifické pro konfiguraci
ApolloNvim a mohou vyžadovat příslušné pluginy.
</p>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="ApolloNvim speciální zkratky"
>
<thead>
<tr>
<th scope="col">Klávesa</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>k</kbd>
</td>
<td>
Zakomentování / odkomentování
kódu
<span
class="badge badge--purple"
style="
font-size: 0.65rem;
padding: 0.15rem 0.5rem;
"
>NERD Commenter</span
>
</td>
</tr>
<tr>
<td>
<kbd>Ctrl</kbd
><span class="key-sep">+</span
><kbd>Shift</kbd
><span class="key-sep">+</span
><kbd>V</kbd>
</td>
<td>
Vložení z externího zdroje
(systémová schránka, INSERT mód)
</td>
</tr>
<tr>
<td><kbd>Tab</kbd></td>
<td>
Procházení barevných témat v
command módu
<code>:colorscheme</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Plugin zkratky -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
🔭 Telescope zkratky
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="Telescope plugin zkratky"
>
<thead>
<tr>
<th scope="col">Příkaz</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code
>:Telescope find_files</code
>
</td>
<td>
Vyhledávání souborů v projektu
</td>
</tr>
<tr>
<td>
<code
>:Telescope live_grep</code
>
</td>
<td>
Fulltextové vyhledávání v
souborech
</td>
</tr>
<tr>
<td>
<code>:Telescope buffers</code>
</td>
<td>Přehled otevřených bufferů</td>
</tr>
<tr>
<td>
<code
>:Telescope help_tags</code
>
</td>
<td>
Vyhledávání v nápovědě Neovim
</td>
</tr>
<tr>
<td>
<code
>:Telescope
colorscheme</code
>
</td>
<td>
Vizuální přepínač barevných
témat
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- NERDTree zkratky -->
<div class="sc-section animate-on-scroll">
<h2 class="sc-section__title">
🌳 NERDTree zkratky
</h2>
<div class="sc-table-wrap">
<table
class="sc-table"
aria-label="NERDTree zkratky"
>
<thead>
<tr>
<th scope="col">
Klávesa / Příkaz
</th>
<th scope="col">Akce</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>:NERDTree</code></td>
<td>Otevření souborového stromu</td>
</tr>
<tr>
<td>
<code>:NERDTreeToggle</code>
</td>
<td>
Přepnutí viditelnosti NERDTree
</td>
</tr>
<tr>
<td><kbd>o</kbd></td>
<td>
Otevření souboru / rozbalení
složky
</td>
</tr>
<tr>
<td><kbd>t</kbd></td>
<td>
Otevření souboru v nové záložce
</td>
</tr>
<tr>
<td><kbd>i</kbd></td>
<td>
Otevření souboru v horizontálním
splitu
</td>
</tr>
<tr>
<td><kbd>s</kbd></td>
<td>
Otevření souboru ve vertikálním
splitu
</td>
</tr>
<tr>
<td><kbd>m</kbd></td>
<td>
Otevření menu (přejmenovat,
smazat, vytvořit)
</td>
</tr>
<tr>
<td><kbd>R</kbd></td>
<td>Obnovení stromu</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- /#panel-apollo -->
<!-- ── Print CTA ── -->
<div
class="print-cta animate-on-scroll"
style="margin-top: 3rem"
>
<p
style="font-size: 2rem; margin-bottom: 0.5rem"
aria-hidden="true"
>
🖨️
</p>
<h2 class="print-cta__title">Vytisknout přehled</h2>
<p class="print-cta__subtitle">
Uložte si přehled zkratek jako PDF nebo vytiskněte
na papír pro offline referenci.
</p>
<button
class="btn-primary"
onclick="window.print()"
aria-label="Vytisknout přehled klávesových zkratek"
>
<span aria-hidden="true">🖨️</span> Vytisknout
přehled
</button>
</div>
</div>
<!-- /.container -->
</section>
</main>
<!-- ===================== FOOTER ===================== -->
<footer class="footer" role="contentinfo">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<a
href="../index.html"
class="footer__logo"
aria-label="ApolloNvim – Domů"
>
🚀 ApolloNvim
</a>
<p class="footer__tagline">
Rychlý, lehký a plně konfigurovatelný Neovim pro
Front-End vývojáře.
</p>
<p
class="footer__love"
aria-label="Vytvořeno s láskou a klávesnicí"
>
Made with ❤️ and ⌨️
</p>
</div>
<nav class="footer__nav" aria-label="Patička navigace">
<h4 class="footer__nav-title">Navigace</h4>
<ul class="footer__nav-list" role="list">
<li>
<a href="../index.html" class="footer__link"
>Domů</a
>
</li>
<li>
<a href="./instalace.html" class="footer__link"
>Instalace</a
>
</li>
<li>
<a href="./pluginy.html" class="footer__link"
>Pluginy</a
>
</li>
<li>
<a href="./tutorialy.html" class="footer__link"
>Tutoriály</a
>
</li>
<li>
<a href="./novinky.html" class="footer__link"
>Novinky</a
>
</li>
<li>
<a href="./zkratky.html" class="footer__link"
>Zkratky</a
>
</li>
</ul>
</nav>
<div class="footer__links">
<h4 class="footer__nav-title">Externe</h4>
<ul class="footer__nav-list" role="list">
<li>
<a
href="https://t.me/apollonvim"
class="footer__link"
target="_blank"
rel="noopener noreferrer"
aria-label="Telegram (otevře se v novém okně)"
>
✈️ Telegram
</a>
</li>
<li>
<a
href="https://codeberg.org/ApolloNvim/ApolloNvim2025"
class="footer__link"
target="_blank"
rel="noopener noreferrer"
aria-label="Codeberg repozitář (otevře se v novém okně)"
>
🏔️ Codeberg
</a>
</li>
<li>
<a
href="https://lukaskanka.cz/"
class="footer__link"
target="_blank"
rel="noopener noreferrer"
aria-label="Web autora (otevře se v novém okně)"
>
🧑‍💻 Web autora
</a>
</li>
</ul>
</div>
</div>
<div class="footer__bottom">
<p class="footer__copy">
Copyright &copy; 2024 &ndash; 2025 🚀 ApolloNvim / Lukáš
Kaňka
</p>
<p class="footer__version">
<span class="badge badge--version">v26.05</span>
</p>
</div>
</div>
</footer>
<!-- ===================== SCRIPTS ===================== -->
<script src="../js/particles.js"></script>
<script src="../js/main.js"></script>
<script>
// ── Tab switching ──
(function () {
const tabs = document.querySelectorAll(
'.sc-tab-btn[role="tab"]',
);
const panels = document.querySelectorAll(
'.sc-panel[role="tabpanel"]',
);
function activateTab(selectedTab) {
tabs.forEach(function (tab) {
const isSelected = tab === selectedTab;
tab.setAttribute("aria-selected", String(isSelected));
});
panels.forEach(function (panel) {
const isTarget =
panel.id ===
selectedTab.getAttribute("aria-controls");
panel.setAttribute("aria-hidden", String(!isTarget));
});
}
tabs.forEach(function (tab) {
tab.addEventListener("click", function () {
activateTab(tab);
});
// Keyboard: arrow keys
tab.addEventListener("keydown", function (e) {
const idx = Array.from(tabs).indexOf(tab);
if (e.key === "ArrowRight") {
tabs[(idx + 1) % tabs.length].focus();
activateTab(tabs[(idx + 1) % tabs.length]);
}
if (e.key === "ArrowLeft") {
tabs[(idx - 1 + tabs.length) % tabs.length].focus();
activateTab(
tabs[(idx - 1 + tabs.length) % tabs.length],
);
}
});
});
})();
// ── Animate on scroll ──
(function () {
const elements =
document.querySelectorAll(".animate-on-scroll");
if (!elements.length) return;
const observer = new IntersectionObserver(
function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add("visible");
observer.unobserve(entry.target);
}
});
},
{ threshold: 0.08, rootMargin: "0px 0px -30px 0px" },
);
elements.forEach(function (el, i) {
el.style.transitionDelay = (i % 5) * 70 + "ms";
observer.observe(el);
});
})();
</script>
</body>
</html>