Hoe Vim in een tekstverwerker te veranderen
Dit artikel maakt deel uit van de VIM User Guide-serie:
- De beginnershandleiding om Vim te gebruiken
- Vim Keyboard Shortcuts Cheatsheet
- 5 Vim-tips en -trucs voor ervaren gebruikers
- 3 Nuttige VIM Editor Tips en Trucs voor gevorderde gebruikers
- Hoe Vim in een tekstverwerker te veranderen
Geloof het of niet, ik gebruik Vim als mijn alledaagse tekstverwerker. Ik hou van de eenvoudige lay-out en het modale ontwerp dat toetsenbordopdrachten bevoordeelt boven muisklikken.
Hoewel je Vim waarschijnlijk kent als een teksteditor die meer geschikt is voor coderen dan voor proza, met een paar aanpassingen, kun jij ook documenten schrijven zoals je bent in Word of LibreOffice terwijl je binnen de comfortabele grenzen van een terminal blijft.
Ermee beginnen
Als je jezelf nog niet vertrouwd hebt gemaakt met de basisprincipes van Vim, bekijk dan dit artikel, het eerste deel uit een reeks van vier. Zorg ervoor dat je leert hoe je een tekstbestand opent, het programma opent en verlaat en met je toetsenbord over het scherm beweegt voordat je verder in dit stuk springt.
Installatie
Je Linux distro komt waarschijnlijk met Vim in zijn pakketrepository, dus je kunt het eenvoudig installeren met je Software Manager of pakketbeheerder. Wanneer u het configuratiebestand van Vim later bewerkt, kunt u dat als een normale gebruiker doen.
Arch Linux:
sudo pacman -S vim
Fedora:
sudo dnf installeert vim
Ubuntu:
sudo apt vim installeren
Iedereen kan Vim uit de Github-repository halen:
git clone https://github.com/vim/vim.git cd ./vim/src/ make sudo make install
Het Vim-configuratiebestand
Een installatie van Vim kan een .vimrc-bestand in je thuismap aanmaken. Als dit niet het geval is, maakt u er een aan:
raak ~ / .vimrc aan
Je kunt het openen met Vim zelf:
cd vim .vimrc
Onze tekstverwerker
Nu kijk je waarschijnlijk naar een leeg bestand. Laten we dat veranderen.
We kunnen een functie maken met de naam "WordProcessor" die u op elk gewenst moment kunt oproepen. Het ziet er als volgt uit:
func! WordProcessor () "beweging verandert kaart j gj kaart k gk" opmaak tekst setlocal formatoptions = 1 setlocal noexpandtab setlocal wrap setlocal linebreak "spelling en thesaurus setlocal spell spelllang = en_us set thesaurus + = / home / test / .vim / thesaurus / mthesaur.txt "complet + = s maakt automatisch aanvullen zoek de thesaurus set compleet + = s endfu com! WP-oproep WordProcessor ()
Nu u de functie als geheel ziet, kunnen we de onderdelen ervan opsplitsen. Volg dit door naar de delen van onze functie te kijken die zijn becommentarieerd met een enkel aanhalingsteken, de afzonderlijke regels in grijs.
1. Bewegingswijzigingen met map j gj
en map k gk
Wat je hier ziet, is een verandering in hoe de cursorbeweging werkt binnen Vim. Als u de vorige Vim-artikelen leest die aan het begin van dit artikel worden vermeld, weet u dat j uw cursor naar beneden verplaatst en k uw cursor omhoog beweegt. Evenzo bewegen gj en gk je naar beneden en naar boven, maar ze verplaatsen de cursor per regel op het scherm in plaats van per regel in het bestand.
Onze toewijzing van j / k tot gj / gk geeft uw cursor de mogelijkheid om op en neer te gaan door ingepakte lijnen op uw scherm. Dit helpt wanneer u lange alinea's typt en u uw cursor gemakkelijk naar het midden van die paragrafen moet verplaatsen.
2. Tekst opmaken met de "setlocal" -opdrachten
Zie eerst setlocal formatoptions=1
. Met "Formaatopties" kunt u kiezen uit een aantal tekstopmaakmodi. In het geval van optie "1" onthoudt Vim zich van het breken van regels na een woord van één letter. Het zal proberen, indien mogelijk, om regels te splitsen voor het woord met één letter.
Vervolgens kunt u met setlocal noexpandtab
voorkomen dat Vim de tabs in spaties verandert. Bijvoorbeeld, de "expandtab" -instelling zal Vim vertellen om uw druk op de Tab-toets te veranderen in een aantal spaties die op dezelfde lengte passen. "Noexpandtab" doet het tegenovergestelde; het bewaart uw Tab-pers als een enkel teken.
setlocal wrap
vertelt Vim om je tekst in te setlocal wrap
wanneer deze het einde van je scherm bereikt. Dit is het gedrag dat je zou verwachten van een tekstverwerker.
Ten slotte setlocal linebreak
ervoor dat Vim je lijnen op verstandige plaatsen doorbreekt. Het zorgt ervoor dat uw regels niet worden ingepakt bij het laatste teken dat op het scherm past. Dit is de reden waarom, voor een deel, tekstregels tekst op verschillende punten op het scherm zullen zien voordat ze naar het begin gaan. Bekijk hoe het eruit ziet met een onvoltooide kopie van dit artikel in de onderstaande schermafbeelding
3. Spelling en een offline thesaurus
Vim wordt geleverd met een ingebouwde spellingcontrole. U kunt uw "WordProcessor" -functie die mogelijkheid gebruiken met behulp van de opdracht setlocal spell spelllang=en_us
. U kunt hier meerdere talen definiëren in een door komma's gescheiden lijst.
Vind meer taalbestanden op deze Vim FTP-site. Plaats de geselecteerde bestanden (beide .spl- en .sug-bestanden voor elke taal) in "$ HOME / .vim / spell /." Wijzig de regel van uw functie om set spelllang=en_us, nl, medical
in te stellen om te controleren op Engels, Nederlandse en medische woorden.
Verkeerd gespelde woorden worden weergegeven als onderstreept en vet in uw tekst.
U kunt naar vervangingen zoeken door in te voeren :z=
in de Normale modus. (Gebruik de Escape-toets om naar de normale modus te gaan.) Dat commando zal een scherm zoals de volgende afbeelding produceren.
U kunt de thesaurusfunctie van Vim gebruiken door het uw gekozen thesaurus-map te vertellen met de set thesaurus+=/home//.vim/thesaurus/mthesaur.txt
of vergelijkbaar. Je kunt het bestand "mthesaur.txt" vinden op Project Gutenberg. Plaats uw gedownloade tekstbestand in de map die u met die opdracht definieert.
Zoek naar woorden die lijken op uw gemarkeerde woord door de invoegmodus te openen (druk op i in de Normale modus) en typ Ctrl + x en vervolgens Ctrl + t. Het toont u een lijst zoals de volgende afbeelding waar u doorheen kunt scrollen om een nieuw woord te vinden.
Soms zijn de suggesties niet de beste.
4. Autocomplete woorden met de "complete" optie
Kijk naar set complete+=s
voor onze laatste overweging. Deze optie vertelt Vim om in uw thesaurus naar een woord te zoeken dat u automatisch wilt aanvullen.
Normaal gesproken kunt u woorden automatisch aanvullen door Vim te laten kijken naar eerdere woorden die u hebt getypt, zoals 'verkeerd gespeld' en 'fout' in de volgende schermafbeelding. U komt gewoon in de invoegmodus en typt Ctrl + n of Ctrl + p om een woord te zoeken dat bijvoorbeeld overeenkomt met de half gespelde "mis".
Zie je hoe de eerste twee selecties niet uit de thesaurus komen? Die twee regels zijn de enige opties die u hier ziet als onze functie geen "complete + = s" heeft gebruikt. U kunt die regel weglaten of een commentaar geven voor snellere automatische aanvullingen.
Start de tekstverwerker
De laatste regel van uw .vimrc waarmee de WordProcessor-functie werkt, is com! WP call WordProcessor()
com! WP call WordProcessor()
. Hiermee kunt u typen :WP
in de Normale modus om de tekstverwerkingsmogelijkheden van Vim in te stellen.
U kunt de "WP" in deze regel bewerken om alles te lezen wat u maar wilt, maar zorg ervoor dat de tekst aaneengesloten is. Welke tekst u ook kiest, de opdracht wordt dan gewijzigd in :
Conclusie
De functionaliteit die ik hier heb besproken, duurt maar een enkele Vim-sessie. Daarom, wanneer u Vim sluit en opnieuw opent, worden de standaardinstellingen opnieuw vastgehouden. Dit gebeurt zelfs als u hetzelfde bestand een tweede keer opent.
Je zou deze opties buiten de functie kunnen stellen om ze de hele tijd te laten werken, maar ze zouden misschien geen recht doen aan veel van de programmeringstaken die Vim moest doen. Het is niet moeilijk om toch een paar karakters te typen. Geniet gewoon van uw nieuwe instellingen en het feit dat u van uw terminal een krachtige alinea-editor heeft gemaakt.