Ako premeniť Vim na textový procesor


Verte tomu alebo nie, používam Vim ako svoj každodenný textový procesor. Páči sa mi jeho jednoduché rozloženie a jeho modálny dizajn, ktorý uprednostňuje príkazy klávesnice pred kliknutiami myšou.

Aj keď pravdepodobne poznáte Vim ako textový editor, ktorý je vhodnejší na kódovanie ako na prózu, s niekoľkými vylepšeniami môžete aj vy písať dokumenty, ako keby ste boli vo Worde alebo LibreOffice, pričom zostanete v pohodlných hraniciach terminálu.

Prečítajte si tiež: Ako používať skratky Vim na navigáciu vo webovom prehliadači

Začíname

Ak ste sa ešte neoboznámili so základmi Vim, pozrite si tento článok, ktorý je prvým zo série štyroch. Uistite sa, že ste sa naučili otvárať textový súbor, vstúpiť do programu a ukončiť ho a ako sa pohybovať po obrazovke pomocou klávesnice skôr, ako sa pustíte do tejto časti.

Inštalácia

Vaša distribúcia Linuxu sa pravdepodobne dodáva s Vim vo svojom úložisku balíkov, takže ho môžete ľahko nainštalovať pomocou správcu softvéru alebo správcu balíkov. Keď neskôr upravíte konfiguračný súbor Vim, môžete to urobiť ako bežný používateľ.

Arch Linux:

sudo pacman -S vim

Fedora:

sudo dnf install vim

Ubuntu:

sudo apt install vim

Všetci ostatní môžu získať Vim z jeho úložiska Github:

git clone https://github.com/vim/vim.git
cd ./vim/src/
make
sudo make install

Konfiguračný súbor Vim

Inštalácia Vim môže vytvoriť súbor .vimrc vo vašom domovskom adresári. Ak nie, vytvorte si ho:

touch ~/.vimrc

Môžete ho otvoriť pomocou samotného Vimu:

cd
vim .vimrc

Náš textový procesor

Teraz sa pravdepodobne pozeráte na prázdny súbor. Poďme to zmeniť.

Môžeme vytvoriť funkciu s názvom „WordProcessor“, ktorú môžete kedykoľvek vyvolať. Bude to vyzerať takto:

func! WordProcessor()
  " movement changes
  map j gj
  map k gk
  " formatting text
  setlocal formatoptions=1
  setlocal noexpandtab
  setlocal wrap
  setlocal linebreak
  " spelling and thesaurus
  setlocal spell spelllang=en_us
  set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt
  " complete+=s makes autocompletion search the thesaurus
  set complete+=s
endfu
com! WP call WordProcessor()

Teraz, keď vidíte funkciu ako celok, môžeme rozobrať jej časti. Pokračujte pohľadom na časti našej funkcie komentované jednoduchými úvodzovkami, pričom jednotlivé riadky sú šedé.

1. Zmeny pohybu pomocou map j gj a map k gk

To, čo tu vidíte, je zmena v tom, ako funguje pohyb kurzora vo Vime. Ak ste si prečítali predchádzajúce články Vim spomínané na začiatku tohto článku, budete vedieť, že j posúva váš kurzor nadol a k posunie váš kurzor nahor. Podobne gj a gk vás posúvajú nadol a nahor, ale posúvajú kurzor po riadkoch na obrazovke namiesto riadku v súbore.

Naše mapovanie j/k na gj/gk dáva kurzoru možnosť pohybovať sa nahor a nadol cez zalomené čiary na obrazovke. To pomáha, keď píšete dlhé odseky a potrebujete ľahko presunúť kurzor do stredu týchto odsekov.

2. Formátovanie textu pomocou príkazov „setlocal“.

Najprv si pozrite setlocal formatoptions=1. „Formatoptions“ vám umožňuje vybrať si z množstva režimov formátovania textu. V prípade možnosti „1“ sa Vim zdrží lámania riadkov po jednopísmenovom slove. Ak to bude možné, pokúsi sa namiesto toho zalomiť riadky pred jednopísmenovým slovom.

Ďalej setlocal noexpandtab vám umožní zabrániť Vimu meniť karty na medzery. Napríklad nastavenie "expandtab" povie Vimu, aby zmenil vaše stlačenie klávesu Tab na počet medzier, ktoré sa zmestia na rovnakú dĺžku. "Noexpandtab" robí opak; zachová stlačenie klávesu Tab ako jeden znak.

setlocal wrap povie Vimu, aby zalomil váš text, keď sa dostane na koniec obrazovky. Toto je správanie, ktoré by ste očakávali od textového procesora.

Nakoniec, setlocal linebreak prinúti Vim prelomiť vaše linky na rozumných miestach. Zabraňuje tomu, aby sa vaše riadky zalomili pri poslednom znaku, ktorý sa zmestí na obrazovku. To je dôvod, prečo čiastočne uvidíte, že riadky textu dosiahnu rôzne body na obrazovke predtým, ako sa zalomia na začiatok. Pozrite sa, ako to vyzerá s nedokončenou kópiou tohto článku na snímke obrazovky nižšie

3. Pravopis a offline tezaurus

Vim prichádza so vstavanou schopnosťou kontroly pravopisu. Pomocou príkazu setlocal spelllang=en_us môžete nastaviť, aby vaša funkcia „WordProcessor“ túto schopnosť používala. Tu môžete definovať viacero jazykov v zozname oddelenom čiarkami.

Ďalšie jazykové súbory nájdete na tejto lokalite Vim FTP. Umiestnite vybraté súbory (súbory .spl aj .sug pre každý jazyk) do „$HOME/.vim/spell/“. Zmeňte riadok funkcie na set spelllang=en_us,nl,medical, napríklad ak chcete skontrolovať anglické, holandské a lekárske slová.

Nesprávne napísané slová sa v texte zobrazia ako podčiarknuté a tučné.

Náhrady môžete vyhľadať zadaním :z= v normálnom režime. (Na prechod do normálneho režimu použite kláves Escape.) Tento príkaz vytvorí obrazovku ako na nasledujúcom obrázku.

Funkciu tezauru Vim môžete použiť tak, že mu poviete vami vybraný adresár tezauru pomocou set tezaurus+=/home//.vim/thesaurus/mthesaur.txt alebo podobne. Súbor "mthesaur.txt" nájdete na Project Gutenberg. Umiestnite stiahnutý textový súbor do adresára, ktorý definujete týmto príkazom.

Hľadajte slová podobné zvýraznenému slovu tak, že vstúpite do režimu vkladania (v normálnom režime stlačte i) a napíšte Ctrl + < kbd class="key">x a potom Ctrl + t. Zobrazí sa vám zoznam ako na nasledujúcom obrázku, v ktorom môžete listovať a nájsť nové slovo.

Niekedy návrhy nie sú najlepšie.

4. Automatické dopĺňanie slov pomocou možnosti „dokončiť“.

Poslednú úvahu nájdete v časti set complete+=s. Táto možnosť povie Vimu, aby vo vašom slovníku vyhľadal slovo, ktoré chcete automaticky doplniť.

Normálne môžete slová automaticky dopĺňať tak, že Vim pozrie na predchádzajúce slová, ktoré ste napísali, ako napríklad „chybne napísané“ a „chyba“ na nasledujúcej snímke obrazovky. Stačí vstúpiť do režimu vkladania a zadať Ctrl + n alebo Ctrl + < kbd class="key">p, ak chcete vyhľadať slovo, s ktorým sa napríklad zhoduje polopravopis „mis“.

Vidíte, ako prvé dva výbery nie sú z tezauru? Tieto dva riadky sú jediné možnosti, ktoré by ste tu videli, keby naša funkcia nepoužívala „kompletné+=s“. Pre rýchlejšie automatické dopĺňanie môžete tento riadok vynechať alebo komentovať.

Spustenie textového procesora

Posledný riadok vášho .vimrc, vďaka ktorému funguje funkcia WordProcessor, je com! Volanie WP WordProcessor(). Umožňuje vám napísať :WP v normálnom režime a nastaviť schopnosti Vim na spracovanie textu.

Môžete upraviť "WP" v tomto riadku, aby ste si prečítali čokoľvek, čo sa vám páči - len sa uistite, že text je súvislý. Akýkoľvek text, ktorý si vyberiete, potom zmení príkaz na :.

Záver

Funkcia, o ktorej som tu diskutoval, trvá iba jednu reláciu Vim. Preto, keď zatvoríte a znova otvoríte Vim, znova sa uplatnia predvolené nastavenia. Stane sa to aj vtedy, ak rovnaký súbor otvoríte druhýkrát.

Tieto možnosti by ste mohli nastaviť mimo funkcie, aby fungovali stále, ale nemusia vyhovovať mnohým programovacím úlohám, ktoré musel Vim zvládnuť. Aj tak nie je ťažké napísať pár znakov. Užite si svoje nové nastavenia a skutočnosť, že ste svoj terminál zmenili na výkonný editor odsekov.

Súvisiace články