Vim je jedním z nejlepších, nejoblíbenějších, funkčně bohatých a výkonných textových editorů. Vim se dodává se spoustou funkcí. Začátečníci se například mohou snadno naučit základy Vimu z vestavěné sekce nápovědy spuštěním "vimtutor
" příkaz v Terminálu. Naučit se Vim stojí za námahu. Dnes v této příručce probereme jednu z nejpoužívanějších funkcí nazvanou "kontrola pravopisu" v editoru Vim. Pokud jste programátor, který upravuje velké množství textu, pak může být docela užitečná funkce „kontrola pravopisu“. Pomůže vám vyhnout se trapným pravopisným chybám/překlepům při úpravách textových souborů pomocí Vimu.
Než začneme, podívejme se, jak funguje kontrola pravopisu ve Vimu.
Jak funguje kontrola pravopisu v editoru Vim
- Booleovská možnost
spell
určuje, zda je kontrola pravopisu povolena nebo ne. Je to místní volba okna, takže pokud ji chcete povolit pouze pro konkrétní vyrovnávací paměť, použijte:setlocal spell spelllang=en_us
místo toho například. spelllang
určuje, na který soubor kouzla se Vim podívá (určuje takéspellfile
volba). Umístění vruntimepath
jsou prohledávány v pořadí, v jakém se objevují, a jsou zastaveny při prvním vyhledávání. Pokud nemáte místní soubor kouzla v.vim/spell
adresář je to obvykle někde jako/usr/share/vim/vim81/spell
například. Jedná se o binární soubory a mají tvarLL.EEE.spl
kdeLL
je jazyk (například en pro angličtinu) a EEE je kódování (například utf-8).- Vim rozeznává hlavně čtyři typy pravopisných „chyb“. Jsou to:a) slova nebyla rozpoznána (SpellBad) b) slova neuvedená velkými písmeny (SpellCap) c) Vzácná slova (SpellRare) a d) Nesprávný pravopis pro vybraný region (SpellLocal), například použití „barvy“ v americké angličtině. Každý z nich je zvýrazněn jinak .
]s
a[s
příkazy přejdou na další chybně napsané slovo ve všech čtyřech kategoriích kromě]S
a[S
pouze pro první dvě kategorie. - Existují dvě místa, kde se ukládají slova, která přidáte. Pomocí příkazů
zg
azw
uloží je do prvního záznamu vspellfile
. Tyto jsou místní do vyrovnávací paměti odspellfile
je buffer-local. PříkazyzG
azW
ukládá slova do interního seznamu slov který je globální pro celý buffer, kde je nastaveno kouzlo. Ty však NEJSOU trvalé a při ukončení Vim se ztratí. - Kromě
z=
příkaz k načtení návrhů pravopisu lze také použítCtrl + x s
v režimu vkládání k načtení návrhů pravopisu. To je užitečné, když neznáte pravopis a tak jej napíšete do poloviny, aby se načetl seznam návrhů. Po provedení opravy pomocíz=
můžete použít:spellrepall
příkaz použít stejnou změnu na všechna slova, která se shodují (může to chtít namapovat nějaký klíč v normálním režimu). - Můžete přidat své vlastní návrhy pro běžně nesprávně napsaná slova v místním souboru (například
.vim/sugg
). Proměnnáspellsuggest
určuje, která bude použita jako první. Pokud je tento soubor prvním záznamem (např. setspellsuggest=file:~/.vim/sugg,best
), poté se nejprve zobrazí vaše návrhy. Zde uvedené položky musí mít dva sloupce oddělené lomítkem. - Nakonec můžete použít svůj vlastní soubor kouzel. Například
.dic
a.aff
soubory používané v mnoha jiných balíčcích lze převést na vim.spl
soubory pomocí příkazu:mkspell outfile infile
. Potom tento soubor použijte tak, že jej uvedete vspelllang
.
Viz nápověda Vim (:help spell.txt
) Více podrobností. Zvláštní poděkování patří /r/random_cynic pro tyto podrobné vstupy na fóru Reddit.
Povolit funkci kontroly pravopisu v editoru Vim
Chcete-li povolit funkci Kontrola pravopisu ve Vimu, otevřete jej a zadejte následující z příkazového režimu:
:set spell

Pamatujte, že výše uvedený příkaz musíte zadat v relaci Vim, nikoli v okně Terminál.
Najděte a opravte pravopisné chyby, překlepy
Nyní přejděte na „Režim vkládání“ (zadejte "i
" pro přepnutí do režimu vkládání z příkazového režimu) a zadejte chybně napsaná písmena. Vim okamžitě zvýrazní chybně napsaná slova.

Jak vidíte ve výše uvedeném výstupu, napsal jsem „Welcome to Linux learng session“ místo „Welcome to Linux learning session“ a vim zvýrazní chybně napsaná slova „learng“ a „sesion“ červenou barvou.
Nyní se vraťte do příkazového režimu pouhým stisknutím klávesy ESC.
Mezi nesprávně napsanými slovy můžete procházet zadáním kteréhokoli z následujících písmen:
- ]s - Najděte špatně napsané slovo za kurzorem (hledání vpřed).
- [s - Najděte špatně napsané slovo před kurzorem (hledání zpět).
- ]S (Všimněte si velkého „S“) – Podobné jako „]s“, ale zastavte se pouze u špatných slov, nikoli u vzácných slov nebo slov pro jiný region.
- [S - Podobné jako "[s", ale hledat zpět.
Po nalezení slova s chybným pravopisem zadejte z= najít návrhy pro toto konkrétní slovo. Zde mi Vim ukazuje seznam návrhů pro chybně napsané slovo „learng“. Vyberte správné slovo ze seznamu zadáním příslušného čísla a stisknutím klávesy ENTER aktualizujte chybně napsané slovo správným.

Jak vidíte na výše uvedeném snímku obrazovky, zadal jsem číslo 13, abych nahradil chybně napsané slovo „learng“ správným slovem „learning“. Vim okamžitě aktualizoval správné slovo ve vstupu poté, co jsem zmáčkl klávesu ENTER.

Podobně opravte všechny pravopisné chyby v textu, jak je popsáno výše. Jakmile opravíte všechny chyby, napište :wq uložte změny a ukončete editor Vim.
Pamatujte, že můžeme kontrolovat pouze pravopisné chyby, nikoli gramatické chyby.
Nastavit jazyk pravopisu
Ve výchozím nastavení používá Vim "en" (všechny oblasti angličtiny), abyste zkontrolovali pravopisné chyby. Můžeme si také zvolit vlastní jazyk pravopisu. Chcete-li například nastavit angličtinu regionu USA, zadejte v režimu příkazů v editoru Vim následující:
:set spell spelllang=en_us
Seznam všech dostupných regionů pro anglický jazyk je:
- cs – všechny oblasti
- en_au – Austrálie
- en_ca – Kanada
- en_gb – Velká Británie
- en_nz – Nový Zéland
- cs_us – USA
Přidat slova do Spellfile
Někdy můžete chtít přidat některá slova jako výjimky, například vaše jméno, příkaz, e-mail atd. V takových případech můžete tato konkrétní slova přidat do Spellefile . Tento soubor obsahuje všechny výjimky.
Ujistěte se, že máte ~/.vim/spell/ adresář ve vašem systému. Pokud tomu tak není, vytvořte jej:
$ mkdir -p ~/.vim/spell/
Poté nastavte soubor pravopisu pomocí:
:set spellfile=~/.vim/spell/en.utf-8.add
Nyní vyhledejte chybně napsané slovo pomocí buď [s nebo ]s a zadejte zg . Přidá slovo pod kurzor jako správné slovo do souboru pravopisu. tj. přidá slova do vašeho vlastního slovníku.

Chcete-li toto přidání vrátit zpět (odstranit slovo ze souboru pravopisu), stačí použít zug . Chcete-li označit špatně napsané slovo, napište zw . Chcete-li tuto akci vrátit zpět, použijte zuw .
Zakázat kontrolu pravopisu v editoru Vim
Vim zvýrazní všechny překlepy a slova, která nejsou dostupná ve slovníku. Někdy vám to přijde nepříjemné při psaní kódu nebo souboru README, který obsahuje mnoho slov, která nejsou dostupná ve slovníku. V takových případech můžete deaktivovat funkci "Kontrola pravopisu" jednoduše zadáním následujícího příkazu:
:set nospell

A je to. Nyní Vim nic nezvýrazní. Funkci kontroly pravopisu můžete kdykoli aktivovat spuštěním „:set spell“ z příkazového režimu ve Vimu.
Vim má více vestavěných stránek nápovědy pro funkci Kontrola pravopisu. Chcete-li se dozvědět více o funkci kontroly pravopisu, spusťte:
:help spell
Pro každou možnost se také podívejte do samostatné části nápovědy, například:
:help ]s :help [s :help z= :help zg :help zug :help zw :help zuw :help spelllang :help spellfile :help spellfile-cleanup
A to je zatím vše. Doufám, že to pomůže.
Související čtení:
- Jak spravovat pluginy Vim pomocí Vundle v systému Linux
- GNU Aspell – bezplatná, otevřená a nezávislá kontrola pravopisu