Internetbureau Holder

Vim, deel 1

Jeroen Bulters vr 05 feb 10

Gezien de regelmatige verbazing over mijn gebruik van – in mijn ogen – de coolste retro text editor nu even geen direct Rails gerelateerd artikel maar korte introductie in werken met vim.

Waarom vim?

Simpel, het is nagenoeg overal aanwezig (mensen met een mac, gebruik wel MacVim), heeft legio uitbreidingsmogelijkheden en is simpelweg snel te noemen. Zelf maak ik veelvuldig gebruik van de Rails.vim, surround.vim, fuzzy_finder_textmate en NERDTree plugins, waardoor ik enkele populaire Textmate functies toch nog kan gebruiken in vim, terwijl ik ook de oorspronkelijke sterke punten van vim intact houdt.

Vandaag in deel 1 de basisbegrippen van werken met vim.

Text invoeren

Als je vim start zal je weinig succes hebben met het invoeren van text, pas als je (per ongeluk) de ‘i’, ‘a’ of ‘o’ toets aan laat zal je in staat zijn om de o-zo-gewenste tekentjes toe te voegen aan je bestand. Stoppen met invoeren gaat ervolgens met Escape.

De reden hiervoor is dat vim standaard in de zogenaamde normal-mode leeft. De normal-mode is de modus waarin je het meerendeel van de tijd zal doorbrengen in vim en wordt gebruikt voor navigeren en bewerken (invoeren uitgezonderd). Navigeren in vim kan door middel van de pijltjes toetsen, of – zoals de bedoeling is – met de h,j,k en l toetsen (zie ook de vim-cheatsheet onderaan dit artikel). Tevens kent vim zogenaamde motions ofwel: handige “commando’s” om snel door je text te navigeren. Het loont de moeite eens te spelen met deze motions (de groene blokjes op de cheat-sheet).

Tegens is het mogelijk om in de normal-mode enkele commando’s uit te voeren die onder te verdelen zijn in (1) de zogenaamde ‘ex’ commando’s en (2) operators. Ex commando’s zijn eigenlijk alle interne vim commandos en beginnen altijd met een dubbele punt. De belangrijksten: “:w” (write), “:wq” (write-and-quit) en “:q!” (quit-without-saving). Ook alle uitbreidingen in vim, die gebaseerd zijn op vim-script zijn aan te roepen met ex-commando’s. De tweede groep bestaat uit commando’s die werken op je document (oranje blokjes op de cheat-sheet) en kunnen op twee manieren gebruikt worden. Ten eerste in combinatie met een motion (“d$” verwijderd bijvoorbeeld alles vanaf de cursor tot het einde van de regel), ten tweede op basis van een selectie.

Het selecteren van text in vim introduceerd een derde modus naast normal- en insert-mode: de visual-mode. Deze betreed je door het indrukken van de ‘v’ (per karakter selecteren), ‘V’ (per regel selecteren) of ‘Control-v’ (block-selection) toetsen en verlaat je door het uitvoeren van een van de commando’s of door het inrammen van de Escape toets.

Het invoeren van text in vim kan zoals eerder genoemd ook op meerdere manieren gestart worden (zie de fel-rode letters op de cheat-sheet).

Is dit nou handig?

In het begin zeker niet, maar – zoals met zovele dingen – oefening baart kunst. Persoonlijk kan ik met een gerust hart zeggen dat ik in vim stukken efficienter werk dan in Textmate of enige andere editor. Het schakelen tussen de verschillende modi wordt vanzelf een ritme en ik kan je bijna garanderen dat mocht je ooit gewend raken aan werken met vim, je hetzelfde ritme ook in andere editors zal toe gaan passen, het soms leuke resultaten.

Hoewel deze introductie met een gerust hart karig genoemd kan worden is deze cheat sheet dat absoluut niet. Ongeveer ieder commando,motion of optie die met de stock-vim mogelijk is, is er op terug te vinden.

In de volgende aflevering, handige plugins voor vim die het leven van een (Rails-)programmeur absoluut makkelijker maken.

Voor de liefhebbers, mijn vim instellingen en plugins zijn terug te vinden op github (github.com/bulters/vim_files).

:wq

Gepost in hor |  1 reactie

Stephan Kaag vr 05 feb 10 17:12

Hoewel ik prima tevreden ben met TextMate ga ik Vim binnenkort eens uitproberen!

Plaats je reactie





Welcome to Holland On Rails

This weblog is the official Ruby techblog from the guys at Holder, a Ruby development company. Holder is also the company behind the RubyAndRails Europe Conference in Amsterdam.

Recente Jobs


Bekijk alle jobs »»

Gereedschapskist

Onmisbare tools voor
iedere developer!
Ruby On Rails
Framework voor de web 2.0 developer. Eindelijk vooruitgang!
TextMate
Editor for true pro's
Typ, tab, top :-)
Nee, niet voor Win.
Made On A Mac
En nou is het over met die saaie grijze Windows bak van je!

Auteurs op deze site

Chris Obdam

'Less is more' evangelist, past dit ook dagelijks toe op zijn tandenborstel.

Chiel Wester

Snelheidswonder op Ruby wielen. Leuk om mee te pair-programmen ;-) Recommend Me

Stephan Kaag

Het eerste Rails coreteam- member uit Nederland? Rails evangelist van het eerste uur.

Paul Engel

Én Rails programmeren én interfaces designen? Je zou hem superman kunnen noemen..

Dax Huiberts

Official Zip-Programmer, skinny code is helemaal zijn ding. Haalt meer code weg dan dat er bij komt.

Freek Monteban

Het nieuwste telg uit het Holland on Rails nest! Hij doet niets anders meer!

Johan Vermeulen

De stylesheet-koning uit de kop van Noord-Holland!