Användbara vim-kommandon

Jonas Arnklint, november 24, 2010

Jonas vs Vim – jakten på den perfekta editorn. Note to self: några smidiga kommandon till text-editorn Vim.

  • G= – autoindentering på allt under raden du står på
  • ^ – gå till första tecknet på raden du är på
  • A – Insert mode sist på raden
  • % – gå till tillhörande (), {} eller [].
  • 1G – gå till början av filen
  • G – slutet av filen
  • 23G – gå till rad 23
  • cw – ta bort resten av ordet och gå till insert mode
  • o – insert mode på ny rad
  • O – insert mode på ny rad innan raden du är på
  • za – toggla “fold” (dölj ett block exv)
  • :e # – switcha till föregående öppna fil (en gång till för att gå tillbaka till den du började på)
  • CTRL-r – redo
  • u – undo
  • “kyy – ” accessar registret (plats k), yy kopierar raden
  • “p – ” accessar registret (om något register är satt, så letar den där (k i detta fall)), p klistrar in såklart.
  • alt # – Highlight every word that matches the one you stand on

Sök med vimgrep

En funktion jag använder väldigt ofta i TextMate är “Find in project” (SHIFT + CMD + F) för att hitta exempelvis en metod som använts på flera ställen. I Vim kan man använda sig av Vimgrep, vilket fungerar på ett liknande sätt, förutom att du får specifiera vilka filer du ska söka igenom som ett andra argument. Regexp används mer än ofta i vim, vilket också vimgrep använder sig av.

  • :vimgrep /@site.slug/g app/views/**/* – söker efter “@site.slug” i kataloger som matchar app/views/*/*, eller app/views/*
  • Lista sedan sökningarna genom att skriva: :cw

Följ mig på twitter!

Mer om mig
  1. Peter Hellberg

    Tjenna Jonas,

    Trevligt att se att du använder Vim, själv har jag börjat experimentera med MacVim efter att ha använt TextMate under lång tid.

    Jag kan absolut rekomendera “carlhudas” eminenta Janus som startpunkt:

    https://github.com/carlhuda/janus

    Fullskärmsläget i MacVim är enligt mig en killer feature :)

    /P

  2. Jonas Arnklint

    Tjena Peter!
    Tack för tipset, installerar genast. Börjar verkligen uppskatta regexp mer och mer vid sökningar, men framför allt att slippa använda musen. Ibland kan ett par extra tangentbordstryckningar löna sig jämfört med att flytta handen från tangentbordet för att hantera musen :)

    Vet du om det finns någon smart lösning för att autokompilera grejer i ena delen av en split-vy? Coffeescript hade vart skönt att kunna göra så med.

  3. Peter Hellberg

    Min första idé var att köra coffee -c -w script.coffee och sen öppna .coffee/.js filerna i varsin buffer och sen sätter :set autoread i .js-buffern, men då uppdateras den bara när man “omfokuserar” MacVim-fönstret :/

    Finns säkert någon klurigare lösning på problemet :)

  4. Jonas Arnklint

    Hmm, precis. Det finns ett autocommando “FileChangedShell” ( http://vimdoc.sourceforge.net/htmldoc/autocmd.html#FileChangedShell ), som verkar triggas då en fil har ändrats.

    Funderar över om man kan läsa av alla .js-filer som är öppna och reloada dem när kommandot triggas. Har kollat med folket på #coffeescript, men utan resultat. Bloggar om det när en lösning är funnen.

  5. Johan Noren

    Lärde mig några nya tips där, tack!
    Måste då nämna några av mina favoritkommandon:
    CTRL-P – wordcompletition (inte codecompletition på riktigt men good enough)
    m[bokstav] – Sätt ett bookmark nånstans man ofta behöver komma till
    ‘[bokstav] – Hoppa till stället man bookmarkat för den bokstaven

    Snart dags för gränsen, taggar redan!

  6. Jonas Arnklint

    Schysst Johan, word/keyword completion är ju awesome! Gränsen here we come! Tar nog med kontoret på tåget, så kan vi snacka lite vim! :)

    Hittade en lösning till att kompilera coffeescript-problemet. Istället för att lyssna på filen, så kan man kompilera när man sparar. (Gäller uppenbarligen inte bara coffeescript) http://arnklint.com/autocompile-coffeescript-vim/

Vad tycker du?

Kommentarsmöjligheten stängd för detta inlägg.