## Telescope - Dalekohled

- Telescope je, vytvořený jedním z hlavních členů týmu Neovim - TJ Devries .

- Vedlejší poznámka, TJ zveřejňuje spoustu obsahu souvisejícího s Neovim na svém kanálu YouTube a na svých streamech Twitch . Zejména jeho kanál YouTube byl skvělým zdrojem. Podívejte se na něj!

- 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ý.

- Tento postup mám odzkoušený na Linuxu tak macOS, ale měl by fungovat i ve Windows

- Pojďme ho nainstalovat (všchny příkazy budeme vkládat do vašeho terminálu):

    call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')

    " Telescope install Neovim
    " Planery"
    Plug 'nvim-lua/plenary.nvim'
    " Telescope plugin
    Plug 'nvim-telescope/telescope.nvim'
    " Fuzzy Telescope fzf
    Plug 'nvim-telescope/telescope-fzf-native.nvim', {'do': 'make' }

    call plug#end()

- Upozorňuji, že zde instalujeme více než jeden plugin. Telescope vyžaduje další plugin s názvem Planery. A další plugin je Telescope Sorter , který podporuje syntaxi fzf a Telescope.

- Pro dokončení instalace nezapomeňte provést tyto tři kroky:

- Uložit init.vim `:w`
- Restarovat zdroj (source) init.vims `:so %` nebo restartovat `Neovim`

- Nainstaluj plugin pomocí `:PlugInstall`.

- Dále musíme nakonfigurovat Telescope. Toto je běžná praxe mezi pluginy Vim. Telescope je plugin založený na Lua.

- Nejprve musíme vytvořit novou složku lua v adresáři: `nvim ~/.config/nvim/lua`

    cd ~/.config/nvim
    mkdir lua

- 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ů .

Rozhodl jsem se použít svůj GitHub nick jako název svého podadresáře:

    cd ~/.config/nvim/lua
    mkdir kankys

- Je jedno jak adresář pojmenujete. Jakmile jej vytvoříte, budete chtít se do něj přesunout pomocí cd:

`cd ~/.config/nvim/lua/tvůj-název-adresáře`

- 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.

- 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` ):

`nvim telescope.lua`

- 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.

- Naše konfigurace pro Telescope bude:

    local telescope = require('telescope')
    telescope.setup {}
    telescope.load_extension('fzf')
    `````
    * Tento kód vložíš do telescope.lua a uložíš. V souboru telescope.lua je všechno, co potřebujeme.
    * 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:

    `` require('PLUGIN_NAZEV').setup {} ``

    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 [dokumentace](https://github.com/nvim-telescope/telescope.nvim#customization) .

    * Nezapomeňte uložit telescope.lua a ukončete Neovim pomocí `` :wq ``.

    * Dále musíme říci našemu init.vim že existuje někde soubor lua:

    V mém případě bych uvedl:

    `` lua require('kankys') `` vložením do `~/.config/nvim/init.vim`

    Pár poznámek:
    *  **Vložte tento příkaz pod vim-plug funkci ( `` call plug#end() )!**

    * 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.
    * v našem případě je to:
    `` ~/.config/nvim/lua/tvůj-název-adresáře/telescope.lua ``

    * 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:

cd ~/.config/nvim/lua/tvůj-název-adresáře touch init.lua ```` * init.lua soubor lze považovat za indexový soubor. Uvnitř init.lua můžeme načíst všechny naše konfigurační soubory.

- Do `init-lua` vložme tento kód:

`require('tvůj-adresář-název/telescope')`

- Vše co jsem uvedl výšše pochopíš lehce když se podíváš zde na GitHubu do konfiguračních souborů nvim.

- Od tohoto okamžiku budou všechny nové konfigurační soubory lua v `lua/tvůj-název-adresáře`.

## Telescope

- Teleskop má řadu příkazů , 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 ``<Shift-Tab>` opačným směrem.

- Níže je uveden příkaz Telescope, pro ukázku: `:Telescope find_files`

Dokumentaci k Telescope v Neovimu můžete zobrazit pomocí:

`:h telescope`