programmera.net -> vi -> normal för utskrift | info@programmera.net |
Kommandoläget
1. Kommandoläget i vi 2. Upprepa och ångra en handling 3. Flytta markören 4. Sökningar 5. Register 6. Klipp 7. Kopiera 8. Klistra 9. Övriga editeringskommandon |
1. Kommandoläget i vi
Kommandoläget (command mode) är det läge där du kan skriva snabbkommandon i vi. I kommandoläget är samtliga tangenter är kopplade till ett kommando utom siffrorna 1-9 som har särskild betydelse, se
grunderna i vi . Kommandoläget skiljer på STORA och små bokstäver. Kommandoläget är den enskilda komponent som gör att vi är så annorlunda jämfört med andra texteditorer. Många andra editorer har också snabbkommandon för att t.ex. klippa och klistra, ofta "Ctrl-C" och "Ctrl-V", men genom att ha ett särskilt läge för kommandon kan man i vi utföra kommandon med en mycket hög hastighet.
2. Upprepa och ångra en handling
De viktigaste kommandona att lära sig är hur man med "." (punkt) upprepar föregående kommando, och hur man med "u" ångrar föregående kommando:
Kommando Betydelse Beskrivning . - Upprepa föregående kommando. u undo Ångra senaste förändring. U undo Återställ hela raden.
Om du till exempel just har raderat ett ord med "dw", kan du radera de två efterföljande ordet med "..". Om du sedan ångrar dig och vill återskapa de två senast raderade orden skriver du bara "uu".
3. Flytta markören
Många tangenter har som enda uppgift att flytta markören i kommandoläget. Följande tangenter flyttar markören ett steg i de fyra väderstrecken:
En mer komplett bild ges nedan:
Flytta markören Betydelse Beskrivning h - Flytta markören ett steg vänster. j - Flytta markören ett steg ned. k - Flytta markören ett steg upp. l - Flytta markören ett steg höger. w,W word Flytta markören till början av nästa ord. e,E end Flytta markören till slutet på nästa ord. b,B back Flytta markören till början av föregående ord. ( - Flytta markören till början av meningen. ) - Flytta markören till slutet av meningen. { - Flytta markören till början av paragrafen. } - Flytta markören till slutet av paragrafen. 0 - Flytta markören till början av raden. $ - Flytta markören till slutet av raden. gg go Flytta markören till början av filen. G go Flytta markören till slutet av filen. 8gg go 8 Flytta markören till rad 8 i filen. :8 (och return) - Flytta markören till rad 8 i filen. H high Flytta markören till första raden i fönstret. M middle Flytta markören till mellersta raden i fönstret. L low Flytta markören till sista raden i fönstret. Ctrl+F forward Scrolla fram (ner) en sida. Ctrl+B back Scrolla bak (upp) en sida. Ctrl+D down Scrolla ner en halv sida. Ctrl+U up Scrolla upp en halv sida.
4. Sökningar
Tabellen nedan visar hur man utför filsökningar i vi:
Sök Betydelse Beskrivning /foo (och return) - Sök framåt i filen efter första förekomst av strängen foo, och flytta markören dit. ?foo (och return) - Sök bakåt i filen efter första förekomst av strängen foo, och flytta markören dit. n next Upprepa föregående filsökning i samma riktning. N next Upprepa föregående filsökning i motsatt riktning.
I vi går det även att söka i raden efter en speciell bokstav! Behärskar man denna teknik kan man ibland förflytta sig snabbt på samma rad:
Sök Betydelse Beskrivning fx find Sök framåt på raden efter första förekomst av bokstaven x, och flytta markören dit. Fx find Sök bakåt på raden efter första förekomst av bokstaven x, och flytta markören dit. tx - Sök framåt på raden efter första förekomst av bokstaven x, och flytta markören till tecknet innan x. Tx - Sök bakåt på raden efter första förekomst av bokstaven x, och flytta markören till tecknet efter x. ; - Upprepa föregående radsökning i samma riktning. , - Upprepa föregående radsökning i motsatt riktning.
5. Register
vi använder sig av register för att lagra text som har kopierats eller klippts bort. Det finns flera typer av register:
Om man inte specifierar vilket register man vill använda då man kopierar, klipper eller klistar kommer defaultregistret (") att användas. Nedan listas några nyttiga kommandon:
Klipp Betydelse Beskrivning :reg " - Visa innehållet i defaultregistret. :reg x - Visa innehållet i registret x. :reg - (Bara Vim) Visa innehållet i alla register.
Nu ska vi testa att titta på innehållet i ett register. Jag kopierar raden "glada" med "yy" och skriver sedan ":reg " " (utan att trycka return) se bilden:
Ny trycker jag return, och nu innehållet i defaultregistret visas:
I Vim kan jag se innehållet i alla register genom att skriva ":reg":
Som synes har jag vid något tillfälle medvetet lagt texten "b " i register a och texten "alla " i register f.
6. Klipp
Tabellen nedan visar hur man raderar/klipper ut text i vi. Senast utklippt text placeras i defaultregistret och kan senare klistras in med kommandot "p":
Klipp Betydelse Beskrivning x - Radera tecknet under markören. X - Radera tecknet före markören. dw delete word Radera från markören till ordets slut. D delete Radera från markören till radens slut. dd delete Radera raden. "xdd delete into x Radera raden och placera den i registret x.
7. Kopiera
Tabellen nedan visar hur man kopierar text i vi. Senast kopierad text placeras i defaultregistret och kan senare klistras in med kommandot "p":
Kopiera Betydelse Beskrivning yw yank word Kopiera från markören till ordets slut. yy yank Kopiera raden. "xyy yank into x Kopiera raden och placera den i registret x.
8. Klistra
Tabellen nedan visar hur man klistrar in text:
Klistra Betydelse Beskrivning p paste Klistra in texten i defaultregistret efter markören/ Klistra in raden under markören. P paste Klistra in texten i defaultregistret före markören/ Klistra in raden på samma rad som markören. "xp paste from x Klistra in texten i registret x före markören.
9. Övriga editeringskommandon
Andra kommandon som ändrar i texten:
Kommando Betydelse Beskrivning J join Slå ihop den rad markören står på med raden under. rx replace Ersätt tecknet under markören med x.