EOS_PHP/apollo-nvim/wiki.php
2024-11-13 17:29:40 +01:00

419 lines
17 KiB
PHP

<?php
$items = [
[
"title" => "1. Jak nainstalovat vim.plug do Neovim",
"content" => "1. Jak nainstalovat vim.plug do Neovim",
"id" => "1",
],
[
"title" => "2. Klávesové zkratky",
"content" => "2. KLávesové zkratky.",
"id" => "2",
],
[
"title" => "3. Jak nainstalovat Codeium do Neovim",
"content" => "3. Jak nainstalovat Codeium do Neovim",
"id" => "3",
],
[
"title" => "4. Telescope - Dalekohled",
"content" => "4. Telescope - Dalekohled",
"id" => "4",
],
[
"title" => "5. Barevné schéma",
"content" => "5. Barevné schéma",
"id" => "5",
]
]; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="ApolloNvim modální editor" />
<meta name="keywords" content="Projekt modálního editoru" />
<meta name="author" content="Lukáš Kaňka" />
<link rel="stylesheet" href="assets/style.css" />
<!--nav bar-->
<script src="https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
<!--icons dark, go to up-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
<!--ubuntu fonts-->
<style>
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
</style>
<!-- líbivé ikony -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css" integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
<title>🚀 ApolloNvim</title>
</head>
<body>
<?php require "assets/header.php"; ?>
<div class="flexbox">
<!-- <div class="menu-conteiner"> -->
<div class="menu-navigation">
<h3>Wiki:</h3>
<ul class="accordion">
<?php foreach ($items as $item) : ?>
<li>
<button class="accordion-button" onclick="location.href='#<?php echo htmlspecialchars(
$item["id"]
); ?>'"><?php echo htmlspecialchars($item["title"]); ?></button>
<div class="accordion-content">
<a href="#<?php echo htmlspecialchars(
$item["id"]
); ?>"><?php echo htmlspecialchars($item["content"]); ?></a>
</div>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="text-title">
<h1>ApolloNvim - Modální editor wiki</h1>
<hr>
<div id="1">
<h2>1. Jak nainstalovat vim.plug do Neovim</h2>
<p>Nejprve si však zálohujte své aktuální nastavení Neovim!!!</p>
<p>Linux & Mac</p>
<div class="code-box">
<pre id="code-content">
<!-- Vaš kód sem -->
~/.config/nvim/init.vim
</pre>
</div>
<p>Windows:</p>
<div class="code-box">
<pre id="code-content">
<!-- Vaš kód sem -->
~\AppData\Local\nvim\init.vim
</pre>
</div>
<p>Běžte na tuto <a class="green" href="https://github.com/junegunn/vim-plug">stránku</a> pod
Installation si najděte svůj operační systém a zkopírujte odkaz pod ním do svého terminálu a pomocí
Enter nainstalujete vim.plug.</p>
<p>Na Linuxu a macOS to bude tento příkaz:</p>
<div class="code-box">
<pre id="code-content">
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \<br>
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
</pre>
</div>
<p>Na Windows to bude tento příkaz:</p>
<div class="code-box">
<pre id="code-content">
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`<br>
ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
</pre>
</div>
<p>Dále si otevřeme soubor <strong><code>init.vim</code></strong> a pokud ho nemáme tak si ho vytvoříme
zde:</p>
<div class="code-box">
<pre id="code-content">
<!-- Vaš kód sem -->
~/.config/nvim/init.vim
</pre>
</div>
<p>Windows:</p>
<div class="code-box">
<pre id="code-content">
<!-- Vaš kód sem -->
~\AppData\Local\nvim\init.vim
</pre>
</div>
<p>A do něj vložíme a následně uložíme tento kód:</p>
<div class="code-box">
<pre id="code-content">
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')<br>
# Jsem budeš v budoucnu vkládat pluginy. Začínající PLug a adresa ke stažení<br>
call plug#end()
</pre>
</div>
<p>A příkazem Nvim v terminálu spustíme Neovim. Pokud vám vyskočí chybové hlášení jen ho odklikněte.
<p>
<p>Pomocí Ctrl + : se dostanete do příkazového řádku a tam napíšete PlugInstall
<p>
<p>A restartujeme Neovim. Příkazem Ctrl + : do příkazového řádku napíšete q a restartujeme Neovim.
<p>
<p>Takto pokaždé když si přidáte do init.vim pluginy, příkazem PlugInstall je nainstalujete a
restartujeme Neovim.</p>
</div>
<hr>
<div id="2">
<h2>2. Klávesové zkratky</h2>
<p>Default klávesové zkratky</p>
<h4>Základní pohyb:</h4>
<ul class="green">
<li>h - Pohyb vlevo</li>
<li>j - Pohyb dolů</li>
<li>k - Pohyb nahoru</li>
<li>l - Pohyb vpravo</li>
<li>w - Přesun na začátek dalšího slova</li>
<li>b - Přesun na začátek předchozího slova</li>
<li>gg - Přesun na začátek dokumentu</li>
<li>G - Přesun na konec dokumentu</li>
</ul>
<h4>Visuální mód:</h4>
<p>Do něj se přepnu v Normal módu pomocí <strong><code>v</code></strong> pohybem kde byl kurzor mohu
označovat text.</p>
<h4>Normální mód - NORMAL:</h4>
<p>Do normál módu se z jiných přesunu pomocí <strong><code>ESC</code></strong></p>
<ul class="green">
<li>i - Přepnutí do režimu vkládání před kurzor</li>
<li>I - Přepnutí do režimu vkládání na začátek řádku</li>
<li>a - Přepnutí do režimu vkládání za kurzor</li>
<li>A - Přepnutí do režimu vkládání na konec řádku</li>
<li>o - Vložení nového řádku pod aktuálním řádkem</li>
<li>O - Vložení nového řádku nad aktuálním řádkem</li>
<li>dd - Smazání řádku</li>
<li>dw - Smazání slova</li>
<li>yy - Kopírování řádku</li>
<li>p - Vložení obsahu schránky pod kurzor</li>
<li>P - Vložení obsahu schránky před kurzor</li>
<li>u - Vrácení poslední provedené akce</li>
<li>Ctrl + r - Krok do předu opak u</li>
<li>q - Zavře okno</li>
<li>. - Poslední příkaz</li>
<li>Ctrl + w - Přepínání oken</li>
</ul>
<h4>Command mód:</h4>
<p>Command mód vyvoláme pomocí <strong><code>SHIFT + :</code></strong></p>
<ul class="green">
<li>:e + jméno souboru - Vytvoří nový soubor - :e index.html</li>
<li>:w - Uložení změn</li>
<li>:q - Opuštění editoru</li>
<li>:wq - Uložení změn a opuštění</li>
<li>:q! - Opuštění editoru bez ukládání změn</li>
<li>:vs - Vertikální rozložení oken</li>
<li>:sp - Horizontální rozložení oken</li>
<li>:colorscheme - Změní theme</li>
<li>:term - Otevře terminál</li>
</ul>
<h4>Vyhledávání a nahrazování:</h4>
<ul class="green">
<li>/hledany_text - Vyhledání textu</li>
<li>n - Přeskočení na další výskyt hledaného textu</li>
<li>N - Přeskočení na předchozí výskyt hledaného textu</li>
<li>:s/hledany_text/nahrazeny_text/g - Nahrazení hledaného textu za zadaný text v celém dokumentu
</li>
</ul>
<h4>Různé:</h4>
<ul class="green">
<li>Ctrl + r - Opětovné provedení zrušené akce</li>
<li>:help - Zobrazení nápovědy</li>
</ul>
</div>
<hr>
<div id="3">
<h2>3. Jak nainstalovat Codeium do Neovim</h2>
<p>Neovim je moderní verze Vim, textového editoru používaného v unixových systémech. Zde jsou některé
klávesové zkratky pro práci s Neovim:</p>
<p><a class="green" href="htpps://codeium.com" target="_blank">Codium</a> je alternativou k GitHub
Copilot s tím, že pro jednotlivce je zdarma. Codeium hodnotím velmi pozitivně a Copilotu se vyrovná.
</p>
<p>
Instalace pomocí plug.vim je jednoduchá, stačí pouze upravit svůj init.vim. Vložíme do něj:
</p>
<div class="code-box">
<pre id="code-content">
" Free AI codium
Plug 'Exafunction/codeium.vim', { 'branch': 'main' }
</pre>
</div>
<p>
Výsledný init.vim bude vypadat takto:
</p>
<div class="code-box">
<pre id="code-content">
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')<br>
" Free AI codium<br>
Plug 'Exafunction/codeium.vim', { 'branch': 'main' }<br>
call plug#end()
</pre>
</div>
<p>
A restartujeme Neovim. Příkazem Ctrl + : do príkazového řádku napíšete q a restartujeme Neovim.</p>
<p>Po restartu provedeme PlugInstall a ještě jednou restartujeme Neovim.
</p>
<p>
Poslední krok bude konfigurace Codeium, příkazem CodeiumEnable do command line.</p>
<p>Codium vás vyzve k propojení API se serverem Codium.</p>
<p>A vše by Vám mělo fungovat.
</p>
</div>
<hr>
<div id="4">
<h2>4. Telescope - Dalekohled</h2>
<p>
Telescope je, vytvořený jedním z hlavních členů týmu Neovim - TJ Devries .
</p>
<p>Vedlejší poznámka, TJ zveřejňuje spoustu obsahu souvisejícího s Neovim na svém kanálu <a class="green" href="https://www.youtube.com/c/TJDeVries" target="_blank">YouTube</a> a na svých
streamech Twitch . Zejména jeho kanál YouTube byl skvělým zdrojem. Podívejte se na něj!</p>
<p>Teleskop je podle mého názoru nezbytný plugin. Je to fuzzy vyhledávač vestavěný v Lua, který lze
konfigurovat všemi způsoby. Přidává spoustu funkcí do vašeho nastavení Neovim. Zatím jsem si
neuvědomil jeho skutečný potenciál, ale na hledání souborů a hledání textu je úžasný.</p>
<p>
Tento postup mám odzkoušený na Linuxu tak macOS, ale měl by fungovat i ve Windows
</p>
<p>
Pojďme ho nainstalovat (všchny příkazy budeme vkládat do vašeho terminálu):
</p>
<div class="code-box">
<pre id="code-content">
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')<br>
" Telescope install Neovim<br>
" Planery"<br>
Plug 'nvim-lua/plenary.nvim'<br>
" Telescope plugin <br>
Plug 'nvim-telescope/telescope.nvim' <br>
" Fuzzy Telescope fzf <br>
Plug 'nvim-telescope/telescope-fzf-native.nvim', {'do': 'make' } <br>
call plug#end()
</pre>
</div>
<p>Upozorňuji, že zde instalujeme více než jeden plugin. Telescope vyžaduje další plugin s názvem <a class="green" href="https://github.com/nvim-lua/plenary.nvim" target="_blank">Planery</a>. A
další plugin je <a href="https://github.com/nvim-telescope/telescope.nvim#sorters" class="green" target="_blank">Telescope Sorter</a>, který podporuje syntaxi fzf a <a href="https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies" target="_blank" class="green">Telescope</a>.</p>
<h4>
Pro dokončení instalace nezapomeňte provést tyto tři kroky:
</h4>
<p>
Uložit init.vim <code>:w</code>
</p>
<p>
Restarovat zdroj (source) init.vims <code>:so %</code> nebo restartovat <code>Neovim</code>.
</p>
<p>Nainstaluj plugin pomocí <code>:PlugInstall</code>.</p>
<p>
Dále musíme nakonfigurovat Telescope. Toto je běžná praxe mezi pluginy Vim. Telescope je plugin
založený na Lua.
</p>
<p>Nejprve musíme vytvořit novou složku lua v adresáři: <code>nvim ~/.config/nvim/lua</code></p>
<div class="code-box">
<pre id="code-content">
cd ~/.config/nvim <br>
mkdir lua
</pre>
</div>
<p>Uvnitř lua adresáře vytvoříme podadresář pro jmenný prostor našich konfigurací pluginů. Abychom
pochopili, proč je to nutné, je třeba vysvětlit, jak Vim zpracovává vyhledávání souborů. Stručně
řečeno, vytvoření podadresáře jmenného prostoru uvnitř lua adresáře zabraňuje nechtěným kolizím
souborů .</p>
<h5>Rozhodl jsem se použít svůj GitHub nick jako název svého podadresáře:</h5>
<div class="code-box">
<pre id="code-content">
cd ~/.config/nvim/lua <br>
mkdir kankys
</pre>
</div>
<p>
Je jedno jak adresář pojmenujete. Jakmile jej vytvoříte, budete chtít se do něj přesunout pomocí cd:
</p>
<p><code>cd ~/.config/nvim/lua/tvůj-název-adresáře</code></p>
<p>
Poznámka: tvůj-název-adresáře se používá jako zástupný symbol. Nahraďte jej názvem svého adresáře
jaký chcete.
</p>
<p>V adresáři jmenného prostoru vytvoř plugin-název.lua soubor pro každý plugin, který
chcete/potřebujete nakonfigurovat. Telescope vytvoříš takto (jsme stálé v cd
~/.config/nvim/lua/tvůj-název-adresáře ):</p>
<p><code>nvim telescope.lua</code></p>
<p>Užitečný tip Vim je, že můžete otevřít soubory dříve, než existují. Pokud soubor zavřete bez uložení, nebude vytvořen! Ve výše uvedeném příkladu otevíráme telescope.luav Neovimu. Pokud soubor uložíme, bude vytvořen.</p>
<p>Naše konfigurace pro Telescope bude:
</p>
<div class="code-box">
<pre id="code-content">
local telescope = require('telescope')
telescope.setup {}
telescope.load_extension('fzf') </pre>
</div>
<p>Tento kód vložíš do telescope.lua a uložíš. V souboru telescope.lua je všechno, co potřebujeme.</p>
<p>Výše uvedený příklad nám dává první ochutnávku Lua. Zjistil jsem, že hodně pluginů potřebuje minimálně toto nastavení v lua:</p>
<div class="code-box">
<pre id="code-content">
require('PLUGIN_NAZEV').setup {}
</pre>
</div>
<p>V tomto příspěvku se nebudu potápět hluboko do konfigurace Telescope. Pokud chcete vidět některé dostupné možnosti nastavení a další přizpůsobení, podívejte se do <a href="https://github.com/nvim-telescope/telescope.nvim#customization" target="_blank" class="green">dokumentace</a>.</p>
<p>Nezapomeňte uložit telescope.lua a ukončete Neovim pomocí <code>:wq</code></p>
<p>Dále musíme říci našemu init.vim že existuje někde soubor lua:</p>
<p>V mém případě bych uvedl:</p>
<p><code>lua require('kankys')</code> vložením do <code>~/.config/nvim/init.vim</code></p>
<h3 class="green">Pár poznámek:</h3>
<p>Vložte tento příkaz pod vim-plug funkci ( `` call plug#end() )!</p>
<p>Co to dělá? Zpočátku to vypadá trochu magicky a porozumění vyžaduje znalost vyhledávání Vim, ale v podstatě tento příkaz bude hledat lua soubor ve vašem běhovém prostředí Vim.</p>
<p>V našem případě je to: <code>~/.config/nvim/lua/tvůj-název-adresáře/telescope.lua</code></p>
<p>Namísto vyžadování každého konfiguračního souboru v našem init.vim, můžeme jen vyžadovat adresář jmenného prostoru. Aby to fungovalo, budeme muset přidat nový soubor do našeho adresáře jmenného prostoru s názvem init.lua:</p>
<div class="code-box">
<pre id="code-content">
cd ~/.config/nvim/lua/tvůj-název-adresáře
touch init.lua
</pre>
</div>
<p>init.lua soubor lze považovat za indexový soubor. Uvnitř init.lua můžeme načíst všechny naše konfigurační soubory.</p>
<p>Do <code>init-lua</code> vložme tento kód:</p>
<div class="code-box">
<pre id="code-content">
require('tvůj-adresář-název/telescope')
</pre>
</div>
<p>Vše co jsem uvedl výšše pochopíš lehce když se podíváš zde na <a href="https://git.arch-linux.cz/kankys/ApolloNvim" target="_blank" class="green">Gitu</a> do konfiguračních souborů nvim.</p>
<p>Od tohoto okamžiku budou všechny nové konfigurační soubory lua v <code>lua/tvůj-název-adresáře</code>.</p>
<h3 class="green">Telescope</h3>
<p>Telescope má řadu <a href="https://github.com/nvim-telescope/telescope.nvim#vim-commands" target="_blank" class="green">příkazů</a>, které lze použít, :Telescope v NORMAL režimu v Neovim. Rychlý způsob, jak zobrazit všechny dostupné příkazy, je zadat :Telescope následuje mezera a poté klikněte na <Tab>. Tlačítko karty otevře seznam automatického doplňování, dostupných příkazů v Telescope. V seznamu se můžete pohybovat pomocí <Tab> a ``` opačným směrem.</p>
<p>Níže je uveden příkaz Telescope, pro ukázku: <code>:Telescope find_files</code></p>
<p>Dokumentaci k Telescope v Neovimu můžete zobrazit pomocí: <code>:h telescope</code></p>
</div>
<hr>
<div id="5">
<h2>Barevné schéma</h2>
<p>Většinu barevných schémat v Neovimu lze nainstalovat jako plugin. Barevných schémat existuje spousta, opravdu dobrých. Zde je seznam některých znich na <a href="https://github.com/rafi/awesome-vim-colorschemes" target="_blank" class="green">GitHubu</a>.</p>
<p>Mezi mé oblíbené patří: Gruvbox Dracula Tokionight</p>
<p>Schémata se instalují uvnitř plug#begin() a plug#end(), pojďme deklarovat naše barevné schéma. Pro ilustraci použiji Gruvbox:</p>
</div>
<?php require "assets/returnbutton.php"; ?>
<?php require "assets/footer.php"; ?>
<script src="assets/script.js"></script>
</body>
</html>