Topfuncties van andere teksteditors toevoegen aan Vim
Advertentie
Als je bent zoals veel mensen, ken je Vim als die editor die je opent om een configuratiebestand aan te passen en dan niet kan afsluiten. Aan de andere kant, als je Vim vaak gebruikt, weet je hoe krachtig de modale bewerkingsfuncties zijn. Als je Linux of een andere Unix-smaak gebruikt, is Vim het leren waard.
Dat gezegd hebbende, Vim toont zijn leeftijd vrij gemakkelijk. Standaard mist het veel van de functies waar we op vertrouwen in moderne teksteditors. Dat gezegd hebbende, installeer een paar pakketten en Vim kan zich handhaven met Visual Studio Code, Sublime Text en meer.
Pluginbeheer: Vim-Plug
Een belangrijk kenmerk in moderne teksteditors is de mogelijkheid om ze uit te breiden met plug-ins. Hoewel Vim native pakketbeheer in versie 8.0 heeft toegevoegd, vinden velen het omslachtig in vergelijking met externe pakketbeheerders. Een van de meest populaire pakketbeheerders is Vim-Plug.
Voordat u Vim-Plug kunt gebruiken, moet u deze installeren. Voer op een Unix-systeem zoals Linux of macOS het volgende uit in een terminal om vim-plug te downloaden en te installeren.
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Als u Vim in Windows gebruikt, kunt u Vim-Plug installeren door het volgende in PowerShell te plakken.
md ~\vimfiles\autoload $uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' (New-Object Net.WebClient).DownloadFile( $uri, $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath( "~\vimfiles\autoload\plug.vim" ) )
Nu kunt u plug-ins installeren door ze toe te voegen aan uw ~/.vimrc
bestand. U moet twee nieuwe regels aan het bestand toevoegen:
call plug#begin('~/.vim/plugged')
call plug#end()
Om een plug-in te installeren, voegt u Plug
, gevolgd door het deel van de GitHub-URL dat volgt op http://www.github.com
in enkele aanhalingstekens. Als u bijvoorbeeld het kleurenschema Solarized wilt installeren, bevat uw configuratiebestand het volgende:
call plug#begin('~/.vim/plugged') Plug 'altercation/vim-colors-solarized' call plug#end()
Zie de Vim-Plug GitHub-pagina voor meer informatie over het installeren van de pakketbeheerder.
Foutcontrole: Syntastic
Een ander kenmerk waar velen op zijn gaan vertrouwen, is je favoriete editor die je vertelt wanneer de code die je hebt geschreven ongeldig is. Dit wordt vaak 'pluisvorming' genoemd. Dit voorkomt niet dat u code schrijft die niet wordt uitgevoerd, maar het zal wel basissyntaxisfouten bevatten die u misschien niet heeft opgemerkt.
Zoals de naam al aangeeft, is Syntastic een plug-in voor syntaxiscontrole voor Vim. Het doet eigenlijk niet veel alleen voor veel talen. In plaats daarvan moet u een linter- of syntaxiscontrole installeren voor de taal of talen van uw keuze. Syntastic integreert de checker vervolgens in Vim en controleert uw code telkens wanneer u het bestand opslaat.
Syntastic ondersteunt meer talen dan we hier kunnen vermelden, dus het is zeer waarschijnlijk dat de taal die u gebruikt wordt ondersteund. Zie de Syntastic GitHub-pagina voor instructies over het configureren van de plug-in.
Code-voltooiing: YouCompleteMe
Syntaxiscontrole is leuk, maar als je van Visual Studio Code of een vergelijkbare editor met veel functies komt, mis je waarschijnlijk iets anders. Dit is codewedstrijd, ook bekend als Intellisense in de Visual Studio-wereld. Als u vim meer gebruikt dan alleen het bewerken van configuratiebestanden Wat zijn configuratiebestanden en hoe kunt u ze bewerken? Wat zijn configuratiebestanden en hoe kunt u ze bewerken? De overgrote meerderheid van softwaretoepassingen wordt geconfigureerd via een menu-interface, maar sommige vereisen dat u een stap verder gaat en daadwerkelijk een tekstbestand bewerkt. Maar hoe werken deze "configuratiebestanden"? Lees meer, het maakt je leven een stuk eenvoudiger.
Code-voltooiing maakt het schrijven van code eenvoudiger door tijdens het typen suggesties te laten verschijnen. Dit is leuk als je een methode gebruikt die zwaar is genest, zodat je niet de hele string hoeft te onthouden.
YouCompleteMe is een code-aanvulengine voor Vim en het is een van de krachtigere plug-ins die u kunt installeren. Het is ook wat lastiger te installeren dan andere plug-ins. Je kunt de basis installeren met een pakketbeheerder zoals Vim-Plug, maar je moet het compileren.
De eenvoudigste manier om de plug-in te compileren, is door het meegeleverde install.py
script te gebruiken. Om dit te doen op macOS of Linux, voert u het volgende in:
cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer
Merk op dat je onder Linux ontwikkeltools, CMake en de vereiste headers moet installeren voordat je YouCompleteMe kunt compileren.
Voor instructies over het installeren en compileren van YouCompleteMe op andere systemen of voor meer informatie, zie de YouCompleteMe GitHub-pagina.
Fuzzy Search: CtrlP
Als u aan een project met veel verschillende bestanden werkt, kan Vim's methode om bestanden te openen u frustreren. De opdracht :e
heeft standaard autocomplete, maar je moet nog steeds weten waar je bestand zich bevindt. Je kunt naar de opdrachtregel gaan om het te vinden, maar zou het niet beter zijn als je dit rechtstreeks vanuit Vim zou kunnen doen?
Gelukkig kunt u dat. De CtrlP-plug-in kan bestanden zoeken, maar kan ook veel meer. De CtrlP GitHub-pagina beschrijft het als een "volledig pad fuzzy-bestand, buffer, mru, tag, ... finder voor Vim." De plug-in is vergelijkbaar met de opdracht "Goto Anything" van Sublime Text, die, verrassend verrast, de sneltoets van Ctrl + heeft P of Command + P.
Deze functie of een equivalent is te vinden in de meeste moderne teksteditors, en als je merkt dat je het mist, is het leuk om in Vim te hebben.
Bladeren door bestanden: NERDTree
Misschien geeft u de voorkeur aan een meer traditionele manier van bladeren door bestanden. Als u de linkerpaneelweergave van bestanden in veel editors mist, zult u blij zijn te weten dat deze beschikbaar is in Vim. Dit is te danken aan de NERDTree-plug-in.
In tegenstelling tot het linkermenu in Sublime Text, Visual Studio Code en andere, is NERDTree een verkenner van het volledige bestandssysteem. In plaats van alleen uw projectmap weer te geven, kunt u overal op uw computer navigeren. Als u met meerdere projecten werkt, kan dit een zeer handige functie zijn.
Gebruik de opdracht :NERDTree
om NERDTree in Vim te openen. Als u het liever aan een opdracht wilt binden, kunt u dit doen met een ~/.vimrc
optie zoals de volgende:
map :NERDTreeToggle
Hiermee kunt u eenvoudig op Ctrl + N drukken om het NERDTree-paneel te openen en te sluiten.
Git-integratie: fugitive.vim
Git-integratie is een must-have geworden in moderne teksteditors, dus het is goed om te weten dat het ook beschikbaar is in Vim. De GitHub-pagina van het project beschrijft fugitive.vim als "een Git-wrapper die zo geweldig is dat het illegaal moet zijn."
:GStatus
zal iets vergelijkbaars weergeven met wat je zou zien met het git status
commando. Als je klaar bent met je werk aan een bestand en klaar bent om het te plegen, voer je uit :GCommit %
. Hiermee kun je het commit-bericht in het actieve Vim-venster bewerken.
Er zijn te veel opdrachten om op te noemen, plus je kunt elke standaard Git-opdracht uitvoeren door :Git
. Voor meer informatie, inclusief screencasts, zie de fugitive.vim GitHub-pagina.
Bent u op zoek naar nog meer Vim-tips?
De bovenstaande tips helpen Vim te moderniseren, maar ze zijn verre van het enige wat je kunt doen om de editor naar wens aan te passen. Zoals je misschien al hebt geraden bij het lezen van dit artikel, is Vim een uiterst tweak-bewerkbare editor.
Als je klaar bent voor meer, bekijk dan onze lijst met Vim-aanpassingen om het nog beter te maken Vim Is Awesome: maak het beter met deze 5 aanpassingen Vim Is Awesome: maak het beter met deze 5 aanpassingen Teksteditors zijn misschien niet sexy, maar ze zijn belangrijk. Een van de krachtigste Linux-teksteditors is VIM (afkorting voor Vi Improved), en hier laten we je zien hoe je de functionaliteit ervan verder kunt uitbreiden. Lees verder .
Ontdek meer over: Programming, Text Editor, Vim.