|
| 1 | +=============================================================================== |
| 2 | += V ä l k o m m e n t i l l V I M - h a n d l e d n i n g e n = |
| 3 | += - Version 1.7 = |
| 4 | +=============================================================================== |
| 5 | += K A P I T E L T V Å = |
| 6 | +=============================================================================== |
| 7 | + |
| 8 | + Hic Sunt Dracones: om detta är din första kontakt med Vim och du |
| 9 | + avsåg att börja med introduktionskapitlet, skriv vänligen |
| 10 | + :q!<ENTER> och kör vimtutor för kapitel 1 istället. |
| 11 | + |
| 12 | + Den ungefärliga tiden för att slutföra detta kapitel är 8-10 minuter, |
| 13 | + beroende på hur mycket tid som läggs på experimentering. |
| 14 | + |
| 15 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 16 | + |
| 17 | + Lektion 2.1.1: BEMÄSTRA TEXTOBJEKT |
| 18 | + |
| 19 | + ** Arbeta på logiska textblock med precision med hjälp av textobjekt ** |
| 20 | + |
| 21 | + 1. Öva på ordoperationer: |
| 22 | + - Placera markören på valfritt ord i raden nedan |
| 23 | + - Skriv diw för att radera INRE ord (ord utan omgivande mellanslag) |
| 24 | + - Skriv daw för att radera ETT ORD (inklusive efterföljande mellanslag) |
| 25 | + - Prova med andra operatorer: ciw (ändra), yiw (kopiera), gqiw (formatera) |
| 26 | + |
| 27 | +---> Öva på: "Vims", (text_objekt), och 'kraftfulla' ord här. |
| 28 | + |
| 29 | + 2. Arbeta med innehåll inom parenteser: |
| 30 | + - Placera markören inuti något () {} [] <> par nedan |
| 31 | + - Skriv di( eller dib (radera inuti parentes) |
| 32 | + - Skriv da( eller dab (radera runt parenteser) |
| 33 | + - Prova samma med i"/a" för citattecken, it/at för HTML/XML-taggar |
| 34 | + |
| 35 | +---> Testfall: {klamrar}, [hakparenteser], <vinkelparenteser>, och "citerade" objekt. |
| 36 | + |
| 37 | + 3. Stycke- och meningsmanipulering: |
| 38 | + - Använd dip för att radera inre stycke (markören var som helst i stycket) |
| 39 | + - Använd vap för att visuellt markera hela stycket |
| 40 | + - Prova das för att radera en mening (fungerar mellan .!? skiljetecken) |
| 41 | + |
| 42 | + 4. Avancerade kombinationer: |
| 43 | + - ciwnew<ESC> - Ändra nuvarande ord till "new" |
| 44 | + - ciw"<CTRL-R>-"<ESC> - Omslut nuvarande ord med citattecken |
| 45 | + - gUit - Gör HTML-tagginnehåll till versaler |
| 46 | + - va"p - Markera citerad text och klistra över den |
| 47 | +
|
| 48 | +---> Slutövning: (Ändra "denna" text) genom att [tillämpa {olika} operationer]< |
| 49 | +
|
| 50 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 51 | +
|
| 52 | + Lektion 2.1.2: NAMNGIVNA REGISTER |
| 53 | +
|
| 54 | +
|
| 55 | + ** Lagra två kopierade ord samtidigt och klistra sedan in dem ** |
| 56 | +
|
| 57 | + 1. Flytta markören till raden nedan markerad ---> |
| 58 | +
|
| 59 | + 2. Navigera till valfri punkt på ordet 'Edward' och skriv "ayiw |
| 60 | + |
| 61 | +MINNESREGEL: till register(") namngivet (a) (y)ank (kopiera) (i)nre (w)ord (ord) |
| 62 | +
|
| 63 | + 3. Navigera framåt till ordet 'kaka' (fk eller 3fc eller $2b eller /ka<ENTER>) |
| 64 | + och skriv "byiw |
| 65 | + |
| 66 | + 4. Navigera till valfri punkt på ordet 'Vince' och skriv ciw<CTRL-R>a<ESC> |
| 67 | + |
| 68 | +MINNESREGEL: (c)hange (ändra) (i)nre (w)ord (ord) med <innehåll från (r)egister> namngivet (a) |
| 69 | + |
| 70 | + 5. Navigera till valfri punkt på ordet 'tårta' och skriv ciw<CTRL-R>b<ESC> |
| 71 | + |
| 72 | +---> a) Edward kommer hädanefter att ansvara för kaka-ransonerna |
| 73 | + b) I denna egenskap kommer Vince ha ensam tårta-beslutanderätt |
| 74 | + |
| 75 | +OBS: Radering fungerar också till register, dvs. "sdiw raderar ordet under |
| 76 | + markören till register s. |
| 77 | +
|
| 78 | +REFERENS: Register :h registers |
| 79 | + Namngivna register :h quotea |
| 80 | + Förflyttning :h motion.txt<ENTER> /inner<ENTER> |
| 81 | + CTRL-R :h insert<ENTER> /CTRL-R<ENTER> |
| 82 | +
|
| 83 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 84 | +
|
| 85 | + Lektion 2.1.3: UTTRYCKSREGISTRET |
| 86 | +
|
| 87 | +
|
| 88 | + ** Infoga resultat av beräkningar direkt ** |
| 89 | +
|
| 90 | + 1. Flytta markören till raden nedan markerad ---> |
| 91 | +
|
| 92 | + 2. Navigera till valfri punkt på det angivna numret |
| 93 | +
|
| 94 | + 3. Skriv ciw<CTRL-R> följt av =60*60*24<ENTER> |
| 95 | +
|
| 96 | + 4. På nästa rad, gå in i infogningsläge och lägg till dagens datum med |
| 97 | + <CTRL-R> följt av =system('date')<ENTER> |
| 98 | +
|
| 99 | +OBS: Alla anrop till system är OS-beroende, t.ex. på Windows använd |
| 100 | + system('date /t') eller :r!date /t |
| 101 | +
|
| 102 | +---> Jag har glömt det exakta antalet sekunder på en dag, är det 84600? |
| 103 | + Dagens datum är: |
| 104 | +
|
| 105 | +OBS: samma sak kan uppnås med :pu=system('date') |
| 106 | + eller, med färre tangenttryckningar :r!date |
| 107 | +
|
| 108 | +REFERENS: Uttrycksregister :h quote= |
| 109 | +
|
| 110 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 111 | +
|
| 112 | + Lektion 2.1.4: NUMRERADE REGISTER |
| 113 | +
|
| 114 | +
|
| 115 | + ** Tryck yy och dd för att se deras effekt på registren ** |
| 116 | +
|
| 117 | + 1. Flytta markören till raden nedan markerad ---> |
| 118 | +
|
| 119 | + 2. Kopiera noll-raden, sedan inspektera register med :reg<ENTER> |
| 120 | +
|
| 121 | + 3. Radera rad 0. med "cdd, sedan inspektera register |
| 122 | + (Var förväntar du dig att rad 0 ska vara?) |
| 123 | + |
| 124 | + 4. Fortsätt radera varje efterföljande rad, inspektera :reg medan du gör det |
| 125 | + |
| 126 | +OBS: Du bör märka att gamla helradsraderingar flyttas nedåt i listan |
| 127 | + när nya helradsraderingar läggs till |
| 128 | + |
| 129 | + 5. Nu (p)asta följande register i ordning; c, 7, 4, 8, 2. dvs. "7p |
| 130 | +
|
| 131 | +---> 0. Detta |
| 132 | + 9. vinglar |
| 133 | + 8. hemliga |
| 134 | + 7. är |
| 135 | + 6. på |
| 136 | + 5. axel |
| 137 | + 4. ett |
| 138 | + 3. krig |
| 139 | + 2. meddelande |
| 140 | + 1. hyllning |
| 141 | +
|
| 142 | +OBS: Helradsraderingar (dd) lever mycket längre i de numrerade registren |
| 143 | + än helradskopieringar, eller raderingar med mindre förflyttningar |
| 144 | +
|
| 145 | +REFERENS: Numrerade register :h quote0 |
| 146 | +
|
| 147 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 148 | +
|
| 149 | + Lektion 2.1.5: SPECIALREGISTER |
| 150 | +
|
| 151 | + ** Använd systemets urklipp och svarta hålet för avancerad redigering ** |
| 152 | +
|
| 153 | + Obs: Urklippsanvändning kräver X11/Wayland-bibliotek på Linux-system OCH |
| 154 | + en Vim byggd med "+clipboard" (vanligtvis en Huge-byggning). Kontrollera med |
| 155 | + ":version" och ":echo has('clipboard_working')" |
| 156 | +
|
| 157 | + 1. Urklippsregister + och * : |
| 158 | + - "+y - Kopiera till systemets urklipp (t.ex. "+yy för nuvarande rad) |
| 159 | + - "+p - Klistra in från systemets urklipp |
| 160 | + - "* är primärmarkering på X11 (mittenklick), "+ är urklipp |
| 161 | + |
| 162 | +---> Prova: "+yy sedan klistra in i ett annat program med Ctrl-V eller Cmd+V |
| 163 | +
|
| 164 | + 2. Svarta hålet-register _ kastar text: |
| 165 | + - "_daw - Radera ord utan att spara till något register |
| 166 | + - Användbart när du inte vill skriva över ditt standard " register |
| 167 | + - Observera att detta använder "ett Ord" textobjekt, introducerat i en |
| 168 | + tidigare lektion |
| 169 | + - "_dd - Radera rad utan att spara |
| 170 | + - "_dap - Radera stycke utan att spara |
| 171 | + - Kombinera med antal: 3"_dw |
| 172 | + |
| 173 | +---> Öva: "_diw på valfritt ord för att radera det utan att påverka kopieringshistorik |
| 174 | +
|
| 175 | + 3. Kombinera med visuella markeringar: |
| 176 | + - Markera text med V sedan "+y |
| 177 | + - För att klistra in från urklipp i infogningsläge: <CTRL-R>+ |
| 178 | + - Prova att öppna ett annat program och klistra in från urklipp |
| 179 | + |
| 180 | + 4. Kom ihåg: |
| 181 | + - Urklippsregister fungerar mellan olika Vim-instanser |
| 182 | + - Urklippsregister fungerar inte alltid |
| 183 | + - Svarta hålet förhindrar oavsiktlig registerskrivning |
| 184 | + - Standard " register är fortfarande tillgängligt för normal kopiering/inklistring |
| 185 | + - Namngivna register (a-z) förblir privata för varje Vim-session |
| 186 | +
|
| 187 | + 5. Urklippsfelsökning: |
| 188 | + - Kontrollera stöd med :echo has('clipboard_working') |
| 189 | + - 1 betyder tillgängligt, 0 betyder inte inkompilerat |
| 190 | + - På Linux kan vim-gtk eller vim-x11 paket behövas |
| 191 | + (kontrollera :version utdata) |
| 192 | +
|
| 193 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 194 | +
|
| 195 | + Lektion 2.1.6: SKÖNHETEN MED MARKERINGAR |
| 196 | +
|
| 197 | + ** Kodapans aritmetik-undvikande ** |
| 198 | +
|
| 199 | +OBS: ett vanligt problem vid kodning är att flytta runt stora kodblock. |
| 200 | + Följande teknik hjälper till att undvika radnummerberäkningar associerade |
| 201 | + med operationer som "a147d eller :945,1091d a eller ännu värre att använda |
| 202 | + i<CTRL-R> följt av =1091-945<ENTER> först |
| 203 | + |
| 204 | + 1. Flytta markören till raden nedan markerad ---> |
| 205 | + |
| 206 | + 2. Gå till första raden av funktionen och markera den med ma |
| 207 | + |
| 208 | +OBS: exakt position på raden är INTE viktigt! |
| 209 | + |
| 210 | + 3. Navigera till slutet av raden och sedan slutet av kodblocket |
| 211 | + med $% |
| 212 | + |
| 213 | + 4. Radera blocket till register a med "ad'a |
| 214 | +
|
| 215 | +MINNESREGEL: till register(") namngivet (a) lägg (d)eletionen (raderingen) från markören till |
| 216 | + RADEN som innehåller markering(') (a) |
| 217 | + |
| 218 | + 5. Klistra in blocket mellan BBB och CCC "ap |
| 219 | +
|
| 220 | +OBS: öva denna operation flera gånger för att bli flytande ma$%"ad'a |
| 221 | + |
| 222 | +---> AAA |
| 223 | + function detBlevStortSnabbt() { |
| 224 | + if ( nagotArSant ) { |
| 225 | + gorDet() |
| 226 | + } |
| 227 | + // vår funktions taxonomi har ändrats och den |
| 228 | + // är inte längre alfabetiskt logisk på sin nuvarande plats |
| 229 | + |
| 230 | + // tänk dig hundratals rader kod |
| 231 | + |
| 232 | + // naivt kunde du navigera till början och slutet och spela in eller |
| 233 | + // komma ihåg varje radnummer |
| 234 | + } |
| 235 | + BBB |
| 236 | + CCC |
| 237 | + |
| 238 | +OBS: markeringar och register delar inte namnrymd, därför är register a |
| 239 | + helt oberoende av markering a. Detta gäller inte register och |
| 240 | + makron. |
| 241 | + |
| 242 | +REFERENS: Markeringar :h marks |
| 243 | + Markeringsförflyttningar :h mark-motions (skillnad mellan ' och `) |
| 244 | + |
| 245 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 246 | + |
| 247 | + Lektion 2.1 SAMMANFATTNING |
| 248 | + |
| 249 | + 1. Textobjekt ger precisionsredigering: |
| 250 | + - iw/aw - inre/runt ord |
| 251 | + - i[/a[ - inre/runt hakparentes |
| 252 | + - i"/a" - inre/runt citattecken |
| 253 | + - it/at - inre/runt tagg |
| 254 | + - ip/ap - inre/runt stycke |
| 255 | + - is/as - inre/runt mening |
| 256 | + |
| 257 | + 2. För att lagra (kopiera, radera) text till, och hämta (klistra in) från, totalt |
| 258 | + 26 register (a-z) |
| 259 | + 3. Kopiera ett helt ord från var som helst inom ett ord: yiw |
| 260 | + 4. Ändra ett helt ord från var som helst inom ett ord: ciw |
| 261 | + 5. Infoga text direkt från register i infogningsläge: <CTRL-R>a |
| 262 | + |
| 263 | + 6. Infoga resultat av enkla aritmetiska operationer: <CTRL-R> följt av |
| 264 | + =60*60<ENTER> |
| 265 | + i infogningsläge |
| 266 | + 7. Infoga resultat av systemanrop: <CTRL-R> följt av |
| 267 | + =system('ls -1')<ENTER> |
| 268 | + i infogningsläge |
| 269 | + |
| 270 | + 8. Inspektera register med :reg |
| 271 | + 9. Lär dig slutdestinationen för helradsraderingar: dd i de numrerade |
| 272 | + registren, dvs. fallande från register 1 - 9. Uppskatta att hel- |
| 273 | + radsraderingar bevaras längre i de numrerade registren än någon |
| 274 | + annan operation |
| 275 | + 10. Lär dig slutdestinationen för alla kopieringar i de numrerade registren och |
| 276 | + hur flyktiga de är |
| 277 | + |
| 278 | + 11. Placera markeringar från kommandoläge m[a-zA-Z0-9] |
| 279 | + 12. Flytta radvis till en markering med ' |
| 280 | + |
| 281 | + 13. Specialregister: |
| 282 | + - "+/"* - Systemets urklipp (OS-beroende) |
| 283 | + - "_ - Svarta hålet (kasta raderad/kopierad text) |
| 284 | + - "= - Uttrycksregister |
| 285 | + - "- - Register för små raderingar |
| 286 | +
|
| 287 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 288 | +
|
| 289 | + Detta avslutar kapitel två av Vim-handledningen. Det är ett pågående arbete. |
| 290 | +
|
| 291 | + Detta kapitel skrevs av Paul D. Parker och Christian Brabandt. |
| 292 | + Svensk översättning av Daniel Nylander. |
| 293 | +
|
| 294 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
0 commit comments