1 00:00:00,000 --> 00:00:02,590 >> [Seminar Vim] 2 00:00:02,590 --> 00:00:04,210 [Brandon Liu] [Harvard University] 3 00:00:04,210 --> 00:00:07,500 [Dette er CS50.] [CS50.TV] 4 00:00:07,500 --> 00:00:09,880 >> I dag kommer til å være en introduksjon til Vim. 5 00:00:09,880 --> 00:00:12,310 Hvor mange av dere har hørt om Vim? 6 00:00:12,310 --> 00:00:15,620 Hva har du hørt om Vim? 7 00:00:15,620 --> 00:00:17,590 [Student] Det løser alle dine problemer. 8 00:00:17,590 --> 00:00:19,450 [Brandon L.] Det løser alle dine problemer. 9 00:00:19,450 --> 00:00:23,840 Noe annet dere har hørt om Vim? Noen visninger? 10 00:00:23,840 --> 00:00:27,990 [Student] Nesten alle jeg har snakket med liker å bruke Vim. 11 00:00:27,990 --> 00:00:29,960 Oh, sweet. 12 00:00:29,960 --> 00:00:31,090 [Student] Mange jeg kjenner liker å bruke Vim. 13 00:00:31,090 --> 00:00:35,050 Ok, det er bra, fordi mange mennesker i CS51 14 00:00:35,050 --> 00:00:38,000 begynne å plukke opp Emacs fordi Emacs har litt bedre støtte 15 00:00:38,000 --> 00:00:40,100 for det språket du skal bruke i CS51, 16 00:00:40,100 --> 00:00:42,770 og jeg er redd for at ikke nok folk på Harvard bruker Vim, 17 00:00:42,770 --> 00:00:46,190 så jeg virkelig prøve og gjøre en god jobb med å oppmuntre Vim bruk. 18 00:00:46,190 --> 00:00:51,110 >> Men her er en klassisk xkcd tegneserie som dere kan finne interessant. 19 00:00:51,110 --> 00:00:53,800 Har dere brukt Nano før i det hele tatt? 20 00:00:53,800 --> 00:00:57,380 Denne tegneserien sier Nano? Ekte programmerere bruke Emacs. 21 00:00:57,380 --> 00:00:59,040 Hei, ekte programmerere bruke Vim. 22 00:00:59,040 --> 00:01:03,130 Nei, ekte programmerere bruke Ed som er dette-du ikke noen gang vil bruke Ed. 23 00:01:03,130 --> 00:01:05,990 Det er virkelig, virkelig gamle og virkelig ille, og ekte programmerere bruke 24 00:01:05,990 --> 00:01:08,440 en magnetisert nål og en stødig hånd. 25 00:01:08,440 --> 00:01:16,010 Og du kan lese resten, men det er ganske morsomt. 26 00:01:16,010 --> 00:01:18,320 Og det morsomme er på slutten. 27 00:01:18,320 --> 00:01:20,310 De sier: "Å, ja, selvfølgelig, det er en Emacs-kommandoen til å gjøre det." 28 00:01:20,310 --> 00:01:25,050 Gode ​​gamle Cx Mc M-butterfly, som er liksom en jab på Emacs 29 00:01:25,050 --> 00:01:28,520 fordi Emacs er historisk kjent for å være litt oppsvulmet 30 00:01:28,520 --> 00:01:32,310 og å ha kommandoer for nesten hva som helst, så det er liksom en spøk for Emacs. 31 00:01:32,310 --> 00:01:35,320 >> Hva er Vim? Vim er en avansert programmerer tekst editor. 32 00:01:35,320 --> 00:01:40,040 Jeg ønsker virkelig å gjøre skillet mellom tekstredigeringsprogram 33 00:01:40,040 --> 00:01:42,000 og noe som en dokumentmater. 34 00:01:42,000 --> 00:01:44,340 Microsoft Word er kjent som et dokument prosessor. 35 00:01:44,340 --> 00:01:49,090 Du kan angi marger, gjøre ting fet, understreket ting, 36 00:01:49,090 --> 00:01:51,480 streik gjennom ting, endre skriftstørrelse og whatnot. 37 00:01:51,480 --> 00:01:54,380 En tekst editor gjør ingenting mer enn bare redigere tekst. 38 00:01:54,380 --> 00:01:56,020 Bokstavelig talt du bare har tegn. 39 00:01:56,020 --> 00:02:01,650 Det er ingen form for styling, størrelser, fonter, farger, eller noe sånt. 40 00:02:01,650 --> 00:02:06,360 Alt du gjør er å redigere tekst, og Vim er spesielt laget for programmering. 41 00:02:06,360 --> 00:02:09,240 Den har en masse funksjoner innebygd i bare for programmering. 42 00:02:09,240 --> 00:02:11,360 Den er designet spesielt for effektiv tekstredigering. 43 00:02:11,360 --> 00:02:15,190 >> Generelt er Vim kjent for å være i utgangspunktet den raskeste teksteditor 44 00:02:15,190 --> 00:02:19,110 du kan eventuelt bruke sammenlignet med annen tekst editor som er mulig. 45 00:02:19,110 --> 00:02:22,480 Mye av IDE-lignende funksjoner er ikke bygget direkte inn Vim, 46 00:02:22,480 --> 00:02:26,850 så hvis du har brukt en IDE og du er vant til ting som kompilere og kjøre automatisk 47 00:02:26,850 --> 00:02:30,880 eller debugging hva som er i din IDE eller en hel rekke forskjellige ting 48 00:02:30,880 --> 00:02:32,290 Vim ikke kommer med som naturlig, 49 00:02:32,290 --> 00:02:36,330 men det er en hel rekke plugins som du kan bruke til å legge den slags funksjonalitet til Vim. 50 00:02:36,330 --> 00:02:40,890 Vim av seg selv fokuserer på tekstredigering og gjør tekstredigering virkelig, virkelig godt. 51 00:02:40,890 --> 00:02:43,340 Og til slutt, det er virkelig tilpasses og utvides, 52 00:02:43,340 --> 00:02:48,740 og i utgangspunktet Vim har eksistert, eller VI som Vim er bygget på, 53 00:02:48,740 --> 00:02:53,790 har eksistert i over 40 år, og det er en veldig, veldig dypt program, 54 00:02:53,790 --> 00:02:58,850 og folk vil bruke det i en mannsalder, og aldri virkelig mestre programmet til fulle, 55 00:02:58,850 --> 00:03:01,530 og du vil alltid fortsette å lære gjennom hele livet ditt i løpet av årene, 56 00:03:01,530 --> 00:03:03,390 alltid blir bedre og bedre. 57 00:03:03,390 --> 00:03:07,480 >> Det er i utgangspunktet ingen grenser for hva du kan lære og hvor mye du kan forbedre med Vim, 58 00:03:07,480 --> 00:03:09,300 som er virkelig spennende. 59 00:03:09,300 --> 00:03:12,730 Du ønsker ikke å se på det som noe skummelt fordi du kan bli veldig, veldig dyktig 60 00:03:12,730 --> 00:03:16,650 i Vim på bare noen få uker, men det er liksom som en kontinuerlig- 61 00:03:16,650 --> 00:03:18,870 du kan alltid lære mer og lære mer og gjøre ting bedre og bedre, 62 00:03:18,870 --> 00:03:20,880 som er litt spennende for meg. 63 00:03:20,880 --> 00:03:23,810 Dette er et eksempel på hva Vim ser ut. 64 00:03:23,810 --> 00:03:27,630 Dette er ikke min. Du vil se noen live demonstrasjoner akkurat nå. 65 00:03:27,630 --> 00:03:29,350 Dette er et eksempel på hva Vim kan se ut. 66 00:03:29,350 --> 00:03:33,590 >> Hva vi skal gjøre i dag er vi kommer til å begynne med 67 00:03:33,590 --> 00:03:35,260  en rask presentasjon av hva Vim kan gjøre. 68 00:03:35,260 --> 00:03:39,040 Jeg kommer til å gjøre noen triks og whatnot for dere 69 00:03:39,040 --> 00:03:43,020 slik at du kan se hvorfor jeg liker Vim så mye, og hvorfor folk liker Vim så mye, 70 00:03:43,020 --> 00:03:46,470 og deretter fra det vi vil gå inn i en mild introduksjon. 71 00:03:46,470 --> 00:03:49,530 Egentlig vil det være litt rask, en innføring i Vim. 72 00:03:49,530 --> 00:03:53,410 Jeg vil be dere å laste ned en tekstfil og å følge med meg hvis du kan. 73 00:03:53,410 --> 00:03:58,080 Dette er Vim, og akkurat her jeg bruker MacVim, 74 00:03:58,080 --> 00:04:00,520 så hvis dere har Mac kan det være lurt å vurdere å bruke MacVim 75 00:04:00,520 --> 00:04:04,210 fordi det er en grafisk versjon av Vim, selv om den vanlige Vim, 76 00:04:04,210 --> 00:04:06,210 hva som er i kommandolinjen, fungerer helt fint. 77 00:04:06,210 --> 00:04:09,890 Jeg skal vise deg noen tilfeldige tips og triks 78 00:04:09,890 --> 00:04:15,330 som du kan bruke i Vim å vise deg hvorfor det er så kult. 79 00:04:15,330 --> 00:04:18,940 >> Bare noen få tilfeldige ting jeg kommer til å gå gjennom. 80 00:04:18,940 --> 00:04:21,700 Det første er tekstobjekter, og det er et par kommandoer rundt tekstobjekter, 81 00:04:21,700 --> 00:04:25,010 og jeg vil faktisk lære deg hva teksten gjenstander er i mer detalj senere i seminaret, 82 00:04:25,010 --> 00:04:30,050 men for eksempel, la oss si at jeg stavet navnet mitt feil, 83 00:04:30,050 --> 00:04:32,380 Barndon Liu, og jeg ønsker å endre det. 84 00:04:32,380 --> 00:04:36,140 Alt jeg trenger å gjøre er å få min markøren et sted i mitt navn, og skriv inn kommandoen 85 00:04:36,140 --> 00:04:38,900 CIW, og det vil slette hele mitt navn, sette meg i insert-modus, 86 00:04:38,900 --> 00:04:41,050 og jeg kan skrive inn navnet mitt og fikse det. 87 00:04:41,050 --> 00:04:45,550 Tilsvarende, hvis jeg ønsker å endre noe inni sitater er det også en kommando for det. 88 00:04:45,550 --> 00:04:47,330 Jeg kan slette ting inni sitater. 89 00:04:47,330 --> 00:04:50,260 Ikke mer å måtte dobbeltklikke, bevege hånden over til mus, 90 00:04:50,260 --> 00:04:52,230 dobbeltklikk, og deretter skrive noe tilbake igjen 91 00:04:52,230 --> 00:05:02,000 Du kan gjøre alt fra tastaturet, uansett hva det er. 92 00:05:02,000 --> 00:05:06,430 Eller alternativt, la oss si at jeg har dette bildet tag inni denne ankerkoden. 93 00:05:06,430 --> 00:05:08,160 >> Har dere dekket HTML i klassen ennå? 94 00:05:08,160 --> 00:05:10,570 Ja, så kanskje jeg vil slette denne taggen, 95 00:05:10,570 --> 00:05:13,080 som normalt hva du trenger å gjøre er at du må bruke musen 96 00:05:13,080 --> 00:05:16,040 og nøye markere nøyaktig hva du ønsker å slette og slette det. 97 00:05:16,040 --> 00:05:21,320 Men i Vim som er rett og slett DIT, og du kan slette det ut veldig raskt, 98 00:05:21,320 --> 00:05:28,020 og jeg skal forklare deg hva alle disse kommandoene betyr, og hvordan du bruker dem i et sekund. 99 00:05:28,020 --> 00:05:30,320 Et annet eksempel, har jeg noen kode her, 100 00:05:30,320 --> 00:05:33,640 og la oss si at jeg vil rykke inn koden, men jeg vil rykke inn koden 101 00:05:33,640 --> 00:05:39,940 bare innenfor parentesene, og jeg kan også rykke inn koden ved hjelp av tre kommandoer 102 00:05:39,940 --> 00:05:45,360 bruker i utgangspunktet> iB. 103 00:05:45,360 --> 00:05:49,960 En annen ting som er virkelig kult om Vim er noe som kalles visuell blokk redigering. 104 00:05:49,960 --> 00:05:52,380 Jeg vet ikke om dere noen gang har ønsket å markere 105 00:05:52,380 --> 00:05:55,690 en rektangulær blokk med tekst i koden noen ganger 106 00:05:55,690 --> 00:06:00,570 i stedet for å måtte gjøre dette merkelig slags linje ting som spenner over alle forskjellige linjer. 107 00:06:00,570 --> 00:06:02,450 For eksempel, i Vim kan du gjøre det. 108 00:06:02,450 --> 00:06:05,260 Jeg kan markere rektangler som dette, noe som er ganske kult, 109 00:06:05,260 --> 00:06:07,950 men dessuten kan jeg redigere å bruke denne funksjonaliteten. 110 00:06:07,950 --> 00:06:12,050 For eksempel, hvis jeg ønsker å gi noen form for prefiks for alle våre navn 111 00:06:12,050 --> 00:06:18,100 Jeg kan markere en blokk og deretter legge til noe. 112 00:06:18,100 --> 00:06:22,060 >> Samme måte, jeg kan også markere denne blokken, og velger å slette det, 113 00:06:22,060 --> 00:06:26,300 eller kanskje jeg skal markere denne blokken, og endre den til D fordi vi er alle leger. 114 00:06:26,300 --> 00:06:29,430 Uansett hva det er, kan du gjøre alle de forskjellige tingene. 115 00:06:29,430 --> 00:06:31,270 Til slutt, folding er virkelig kult. 116 00:06:31,270 --> 00:06:33,840 Mange IDE har denne hvor du kan brette forskjellige funksjoner ut av syne 117 00:06:33,840 --> 00:06:35,590 i tilfelle du ikke ønsker å se dem. 118 00:06:35,590 --> 00:06:40,120 For eksempel anta at jeg har denne gjengen av teksten her, og jeg har egentlig ikke lyst til å se den. 119 00:06:40,120 --> 00:06:42,710 Jeg ønsker å holde det ute av syne fordi jeg redigerer noe annet i filen. 120 00:06:42,710 --> 00:06:50,580 Jeg kan brette den opp slik at det er alt kollapset, 121 00:06:50,580 --> 00:06:52,150 og på den måten det er ute av syne, 122 00:06:52,150 --> 00:06:54,310 og jeg kan redigere andre ting som er på siden, og dette er virkelig flott. 123 00:06:54,310 --> 00:06:57,550 Du kan brette opp funksjoner og whatnot eller kaste opp klasser når du programmerer 124 00:06:57,550 --> 00:06:59,380 bare for å holde dem ute av syne når du ikke redigere dem, 125 00:06:59,380 --> 00:07:04,330 og senere når du vil se dem kan du åpne dem opp. 126 00:07:04,330 --> 00:07:09,260 Og du kan se det bare åpnet alt opp. 127 00:07:09,260 --> 00:07:11,220 Tabs, buffere, og vinduer. 128 00:07:11,220 --> 00:07:13,260 Vim er ganske kult i det 129 00:07:13,260 --> 00:07:16,280 normalt i en rekke tekstredigeringsprogrammer kan du bare redigere én fil om gangen, 130 00:07:16,280 --> 00:07:18,960 som i Nano, eller kanskje hvis du bruker Notepad eller Gedit. 131 00:07:18,960 --> 00:07:21,470 Jeg har faktisk aldri brukt Gedit veldig mye, men i hvert fall i Notepad + + 132 00:07:21,470 --> 00:07:26,700 du kan ha faner, men Vim har begrepet faner, buffere og vinduer. 133 00:07:26,700 --> 00:07:28,760 For eksempel kan du åpne opp en haug med nye faner. 134 00:07:28,760 --> 00:07:31,790 >> Du kan se her på toppen Jeg har nå en haug av faner, 135 00:07:31,790 --> 00:07:34,350 og jeg kan lukke dem. 136 00:07:34,350 --> 00:07:37,550 Videre, det er dette konseptet av buffere, 137 00:07:37,550 --> 00:07:40,110 som er ideen om at når du har åpnet en fil 138 00:07:40,110 --> 00:07:43,910 den holder seg i live i buffer, og hvis du ønsker å navigere til denne filen veldig raskt 139 00:07:43,910 --> 00:07:46,290 du kan navigere til det veldig raskt i kant også, 140 00:07:46,290 --> 00:07:51,890 og dessuten, innen en rute du kan også dele din vinduet opp i flere vinduer. 141 00:07:51,890 --> 00:07:55,890 For eksempel, hvis jeg ønsker å dele dette vinduet opp i flere vinduer 142 00:07:55,890 --> 00:08:00,080 du kan se her at jeg kan ha samme kode to ganger, 143 00:08:00,080 --> 00:08:03,800 og jeg kan dele mer og mer og mer, og akkurat nå ser det ikke så bra 144 00:08:03,800 --> 00:08:07,340 fordi som standard har jeg standardstørrelsen vinduet være slags stor 145 00:08:07,340 --> 00:08:09,490 slik at alle de andre er klemt ut, 146 00:08:09,490 --> 00:08:12,000 men normalt når jeg er på min datamaskin, og ikke på denne projektoren 147 00:08:12,000 --> 00:08:15,920 Jeg kan ha flere ruter åpner på samme tid, noe som er veldig hyggelig for 148 00:08:15,920 --> 00:08:21,450 redigering av flere filer samtidig. 149 00:08:21,450 --> 00:08:23,800 Du kan også ha ting som å velge og erstatte, 150 00:08:23,800 --> 00:08:27,900 og vi vil faktisk dekke som på seminaret, 151 00:08:27,900 --> 00:08:29,250 så jeg skal hoppe over det for nå. 152 00:08:29,250 --> 00:08:32,039 Du kan også samhandle med kommandolinjen i alle slags forskjellige måter. 153 00:08:32,039 --> 00:08:36,380 For eksempel, hvis jeg har en slags liste her, og jeg ønsker å sortere det- 154 00:08:36,380 --> 00:08:43,039 Jeg vet ikke, la oss legge til en annen frukt, drue, 155 00:08:43,039 --> 00:08:45,450 og jeg kan markere dette ved hjelp av høydepunktet funksjon 156 00:08:45,450 --> 00:08:48,980 og ringe sortere, og det vil sortere det automatisk for meg. 157 00:08:48,980 --> 00:08:52,150 >> Tilsvarende, hvis du kommer til å bli redigere CSS, som jeg antar du sannsynligvis vil være å gjøre 158 00:08:52,150 --> 00:08:54,190 for det endelige prosjektet, de fleste mennesker gjør, 159 00:08:54,190 --> 00:09:00,200 og kanskje du vil beholde din CSS organisert ved å sortere dem i alfabetisk rekkefølge. 160 00:09:00,200 --> 00:09:04,410 Du kan også markere dem og ringe sortere, og det vil sortere dem for deg. 161 00:09:04,410 --> 00:09:07,380 Dette er noen av eksemplene på de tingene som Vim kan gjøre, 162 00:09:07,380 --> 00:09:10,760 og du vil merke at det viktigste at jeg virkelig ønsker å trekke oppmerksomheten din til 163 00:09:10,760 --> 00:09:14,740 er at jeg gjør alt fra tastaturet, 164 00:09:14,740 --> 00:09:18,020 og hvis du er i stand til å se hvor mine hender er plassert 165 00:09:18,020 --> 00:09:21,210 du vil også se at hendene mine aldri virkelig flytte fra hjemmet rad. 166 00:09:21,210 --> 00:09:24,790 Normalt når du redigerer tekst du har som regel å bruke en mus 167 00:09:24,790 --> 00:09:28,030 og klikke seg rundt og whatnot, og den slags bevegelse drar deg ned 168 00:09:28,030 --> 00:09:32,280 og bortkastet tid, eller kanskje du flytter mellom hjem rad og piltastene, 169 00:09:32,280 --> 00:09:35,620 og så du flytter frem og tilbake sånn, som er litt tungvint 170 00:09:35,620 --> 00:09:38,750 men også bremser deg ned, og ting er når du får virkelig god til Vim 171 00:09:38,750 --> 00:09:42,350 alt du ønsker å gjøre er gjort uten å måtte flytte hendene 172 00:09:42,350 --> 00:09:50,730 fra hjemmet rad, noe som er flott. 173 00:09:50,730 --> 00:09:54,870 Hold ut, kommer jeg til å åpne opp dette programmet. Det vi går. 174 00:09:54,870 --> 00:09:58,320 >> Nå kan du se hva kommandoer kjører ned nedre høyre vinduet. 175 00:09:58,320 --> 00:10:03,190 Alle funksjonene som jeg viste bare at du er ting som er inkludert som standard med Vim, 176 00:10:03,190 --> 00:10:06,820 men det er også et stort antall plugins som du også kan bruke 177 00:10:06,820 --> 00:10:08,390 å forbedre Vim opplevelse. 178 00:10:08,390 --> 00:10:10,540 Hvis du lastet ned konfigurasjonsfilene som jeg inkludert, 179 00:10:10,540 --> 00:10:13,150 og det er instruksjoner om hvordan du installerer dem i PowerPoint 180 00:10:13,150 --> 00:10:17,840 og også i e-posten jeg sendte ut, jeg har ca 40 plugins installert 181 00:10:17,840 --> 00:10:20,490 eller kanskje 30 plugins, og hver eneste en 182 00:10:20,490 --> 00:10:24,000 bringer ekstra funksjonalitet til Vim som forbedrer din Vim erfaring. 183 00:10:24,000 --> 00:10:26,960 For eksempel, en av mine favoritter er noe som kalles surround.vim, 184 00:10:26,960 --> 00:10:29,760 og det i utgangspunktet tillater deg å arbeide med omkring 185 00:10:29,760 --> 00:10:32,200 eller avgrense tegn mye lettere. 186 00:10:32,200 --> 00:10:35,960 >> Et eksempel, jeg vet ikke om dere noen gang kode i LaTeX, 187 00:10:35,960 --> 00:10:38,830 men LaTeX er et matematisk sats språk som brukes til å lage 188 00:10:38,830 --> 00:10:42,950 virkelig hyggelig ser matte, og når du vil ha noe å se ut som matte 189 00:10:42,950 --> 00:10:47,050 du pakker det inn i dollartegn, og la oss si at jeg skriver noen ligning som F = ma, 190 00:10:47,050 --> 00:10:49,240 og jeg glemte å pakke den inn i dollartegn. 191 00:10:49,240 --> 00:10:58,270 Da kan jeg markere dette og pakk den i dollartegn akkurat sånn. 192 00:10:58,270 --> 00:11:03,640 Alternativt kan Vim du å slette ting inni koder 193 00:11:03,640 --> 00:11:07,300 og slette koder og whatnot, men Vim av natur 194 00:11:07,300 --> 00:11:10,400 ikke tillater deg å endre kodene, så for eksempel, har jeg denne div tag, 195 00:11:10,400 --> 00:11:13,060 og jeg ønsker å oppgradere til HTML5 og bruke en ny header tag. 196 00:11:13,060 --> 00:11:22,290 Jeg kan gjøre endring rundt tag og skriv i overskriften, 197 00:11:22,290 --> 00:11:26,540 og den vil automatisk endre det for meg. 198 00:11:26,540 --> 00:11:29,620 Tilsvarende, la oss si vi har noe i parentes, 199 00:11:29,620 --> 00:11:33,230 og jeg ønsket å endre det fra parentes i parentes eller noe sånt. 200 00:11:33,230 --> 00:11:36,520 Jeg kan også endre det virkelig enkelt ved å skrive inn c for endring, 201 00:11:36,520 --> 00:11:39,330 s for surround, parenteser. 202 00:11:39,330 --> 00:11:42,170 Åh, jeg tror jeg trenger å skrive det raskere. 203 00:11:42,170 --> 00:11:45,380 Parenteser og bukseseler eller braketter, og den vil automatisk endre det for meg, 204 00:11:45,380 --> 00:11:48,570 som er veldig fint, ellers normalt er det veldig tungvint. 205 00:11:48,570 --> 00:11:51,310 >> Dette er virkelig hyggelig å veksle mellom kanskje enkelt sitat 206 00:11:51,310 --> 00:11:53,060 og anførsels strenger eller noe sånt. 207 00:11:53,060 --> 00:11:56,250 Det er ett eksempel use case. 208 00:11:56,250 --> 00:11:58,750 Det er en plugin som heter Fugitive 209 00:11:58,750 --> 00:12:00,260 som integrerer med Git. 210 00:12:00,260 --> 00:12:03,000 Jeg gjetter kanskje dere har ikke brukt Git så mye i CS50, 211 00:12:03,000 --> 00:12:05,530 men du vil finne deg selv ved hjelp av Git mer og mer og mer, 212 00:12:05,530 --> 00:12:09,530 ikke bare i klasser over hele Harvard, men også på arbeidsplasser og whatnot, 213 00:12:09,530 --> 00:12:12,650 og normalt må du bytte frem og tilbake mellom 214 00:12:12,650 --> 00:12:15,950 kommandolinjen og Vim å samhandle med Git, 215 00:12:15,950 --> 00:12:18,590 men det er plugins for å integrere med Git innenfra Vim 216 00:12:18,590 --> 00:12:23,020 og også for å gi deg selv ekstra funksjonalitet på toppen av Git. 217 00:12:23,020 --> 00:12:25,520 Det er noe som heter NERDTree, som du kan bruke til å utforske 218 00:12:25,520 --> 00:12:27,860 de filstrukturer fra innenfor Vim. 219 00:12:27,860 --> 00:12:31,710 >> For eksempel, kan jeg åpne opp NERDTree på høyre ruten, 220 00:12:31,710 --> 00:12:35,100 og du kan i utgangspunktet se tilfeldige filer 221 00:12:35,100 --> 00:12:38,720 og åpne ikke skatter, ikke se på min skatt. 222 00:12:38,720 --> 00:12:43,460 Du kan se på filer og whatnot og åpne andre filer og så videre og så videre. 223 00:12:43,460 --> 00:12:47,610 Og jeg vil ikke gå inn i disse andre plugins, så kan vi i utgangspunktet dykke i 224 00:12:47,610 --> 00:12:51,640 og begynne å jobbe på Vim, men det er plugins som lar deg 225 00:12:51,640 --> 00:12:55,420 comment lettere, plugins som lar deg hoppe mellom filer lettere, 226 00:12:55,420 --> 00:12:57,820 plugins som gir deg syntakskontroll innenfra Vim, 227 00:12:57,820 --> 00:13:00,210 som er kult, og det gir deg syntakskontroll 228 00:13:00,210 --> 00:13:03,710 for de fleste språk rett ut av boksen, 229 00:13:03,710 --> 00:13:07,460 ting som rainbow parentes, som faktisk er veldig, veldig kult. 230 00:13:07,460 --> 00:13:09,110 La meg gi deg et eksempel på det akkurat nå. 231 00:13:09,110 --> 00:13:11,150 >> La oss se. 232 00:13:11,150 --> 00:13:15,460 Her er noen tilfeldige kode som jeg skrev, 233 00:13:15,460 --> 00:13:19,720 og du vil merke at brakettene og parenteser er alle farget, 234 00:13:19,720 --> 00:13:26,120 og parenteser i samme farge er samsvarende, som er fint 235 00:13:26,120 --> 00:13:29,380 og noen ganger forbedrer lesbarheten av koden din. 236 00:13:29,380 --> 00:13:32,030 Du har også autofullføring, tabellformatering. 237 00:13:32,030 --> 00:13:37,240 Når du har noe du ønsker å få alle kommentarene til å stille opp 238 00:13:37,240 --> 00:13:40,820 eller du ønsker å lage en tabell i teksten din, og du vil 239 00:13:40,820 --> 00:13:43,870 få alt til å se ut som et hyggelig bord, i stedet for å måtte formatere det manuelt 240 00:13:43,870 --> 00:13:46,830 det er plugins som vil formatere det for deg, og så videre og så videre. 241 00:13:46,830 --> 00:13:49,400 Listen fortsetter og fortsetter og fortsetter. 242 00:13:49,400 --> 00:13:53,890 Jeg kunne tilbringe timer å utforske alle de forskjellige Vim plugins som eksisterer, 243 00:13:53,890 --> 00:13:59,780 og det er utrolig hva som finnes der ute. 244 00:13:59,780 --> 00:14:05,880 >> Eventuelle spørsmål så langt? Søt. 245 00:14:05,880 --> 00:14:10,180 I så fall kommer vi til å begynne å spille rundt med Vim, 246 00:14:10,180 --> 00:14:12,620 og jeg ønsker dere å jobbe med noen Vim med meg 247 00:14:12,620 --> 00:14:17,650 slik at du kan få en følelse for det, og jeg kan veilede deg i dine første skritt som arbeider med Vim 248 00:14:17,650 --> 00:14:20,590 fordi mange mennesker blir overveldet når de åpner Vim opp, 249 00:14:20,590 --> 00:14:24,730 og noen ganger hvis du ikke engang vet kommandoen for å avslutte du kan ikke engang komme ut av Vim, 250 00:14:24,730 --> 00:14:26,350 men det er ikke så ille. 251 00:14:26,350 --> 00:14:28,820 Du trenger bare noen få minutter av veiledning fra noen som har brukt Vim før 252 00:14:28,820 --> 00:14:32,220 eller å lese noen tutorials på nettet, og du vil være på vei på kort tid. 253 00:14:32,220 --> 00:14:34,570 Her er noen instruksjoner for å installere Vim hvis du ikke allerede har. 254 00:14:34,570 --> 00:14:39,130 Du kan se på disse lysbildene etter presentasjonen hvis du ønsker å installere flere ting. 255 00:14:39,130 --> 00:14:42,660 >> Også disse er noen instruksjoner for installering av mine konfigurasjonsfiler, 256 00:14:42,660 --> 00:14:48,230 og du kan også følge disse instruksjonene senere hvis du ikke allerede har. 257 00:14:48,230 --> 00:14:52,390 Hvis dere kunne gå til denne linken og laste ned en tekstfil. 258 00:14:52,390 --> 00:14:56,640 Linken tar deg til denne tekstfilen, som jeg vil gjerne at du skal laste ned og åpne opp i Vim, 259 00:14:56,640 --> 00:15:01,580 og det er en haug med øvelser og whatnot i det at du kan følge rundt med meg 260 00:15:01,580 --> 00:15:09,160 og begynner å få litt trening med noen av de grunnleggende operasjoner i Vim. 261 00:15:09,160 --> 00:15:12,740 Bra. 262 00:15:12,740 --> 00:15:18,430 Mens du åpner det opp jeg kommer til å gi en kort intro til to veldig viktige prinsipper 263 00:15:18,430 --> 00:15:23,080 i Vim redigering som er veldig viktig for å forstå før du dykke inn i Vim, 264 00:15:23,080 --> 00:15:25,720 og det er modal redigering og operatører og bevegelser. 265 00:15:25,720 --> 00:15:28,600 Jeg skal dekke modal redigering først, og deretter vil vi dekke operatører og bevegelser 266 00:15:28,600 --> 00:15:30,980 i en liten bit. 267 00:15:30,980 --> 00:15:36,910 >> Den første nøkkelen skillet mellom Vim og stort sett alle andre 268 00:15:36,910 --> 00:15:39,870 tekstredigeringsprogrammer av noe slag er at Vim er en modal redaktør, 269 00:15:39,870 --> 00:15:42,260 og hva det betyr er når du bruker Vim 270 00:15:42,260 --> 00:15:44,120 du kan være i en av mange forskjellige moduser. 271 00:15:44,120 --> 00:15:46,590 Det er normal modus, er det innsettingsmodus, det er visuell modus, 272 00:15:46,590 --> 00:15:50,790 så videre og så videre, og ting er, dine tastetrykk ta på ulike tiltak, 273 00:15:50,790 --> 00:15:54,160 ta på annen betydning, avhengig av hvilken modus du er i. 274 00:15:54,160 --> 00:15:58,110 Bare som et eksempel, er normal modus modus du er i når du beveger deg rundt, 275 00:15:58,110 --> 00:16:01,820 og så jeg ville bruke nøkkelen J for å flytte nedover, 276 00:16:01,820 --> 00:16:05,430 men i insert-modus, bruker du nøkkelen J å faktisk skrive ut J på skjermen, 277 00:16:05,430 --> 00:16:08,230 og det er derfor mange mennesker blir forvirret fordi de ikke er vant til 278 00:16:08,230 --> 00:16:11,630 å være i forskjellige moduser hele tiden, og så vil de være å skrive ting ut, 279 00:16:11,630 --> 00:16:14,490 og du er vant til å ha det du skriver vises på skjermen, 280 00:16:14,490 --> 00:16:18,370 men i Vim kanskje markøren beveger seg over alt 281 00:16:18,370 --> 00:16:21,020 fordi du skriver rare tegn, og du plutselig får 282 00:16:21,020 --> 00:16:24,710 flyttet inn i innsettingsmodus fordi du skrev noen viktige 283 00:16:24,710 --> 00:16:27,150 som setter deg inn i insert-modus, og deretter tekst begynner flyr ut, 284 00:16:27,150 --> 00:16:29,940 slik at folk blir forvirret av den grunn. 285 00:16:29,940 --> 00:16:32,960 Men du må holde styr på hvilken modus du er i, 286 00:16:32,960 --> 00:16:35,260 og hvis du ser helt nederst verktøylinjen i Vim 287 00:16:35,260 --> 00:16:37,410 det bør være en indikator som forteller deg hvilken modus du er i, 288 00:16:37,410 --> 00:16:39,350 som bør være nyttig. 289 00:16:39,350 --> 00:16:42,650 >> Men generelt, de tre hovedmoduser du bør vite om, 290 00:16:42,650 --> 00:16:46,440 det er bare sannsynlig 6 eller 7 eller 8 modi eller så, 291 00:16:46,440 --> 00:16:49,180 men du tilbringer mesteparten av tiden din i tre. 292 00:16:49,180 --> 00:16:52,150 Det første er normal modus. Det er der du tilbringer mesteparten av tiden din. 293 00:16:52,150 --> 00:16:55,620 Alle tastetrykk registreres som en slags kommando, 294 00:16:55,620 --> 00:16:58,870 og vi vil lære mye av disse kommandoene i løpet av dagen i dag. 295 00:16:58,870 --> 00:17:03,160 Den andre modusen er innsettingsmodus, som er der du faktisk skriver ut ting, 296 00:17:03,160 --> 00:17:06,410 og innsettingsmodus er i utgangspunktet den modusen du vanligvis brukt til. 297 00:17:06,410 --> 00:17:08,650 Du skriver noe, og det bare kommer på skjermen, 298 00:17:08,650 --> 00:17:11,800 og visuell modus er noe der du kan gjøre utheving. 299 00:17:11,800 --> 00:17:14,750 Du så tidligere der noen ganger jeg ville fremheve tekst 300 00:17:14,750 --> 00:17:21,900 og manipulere det på forskjellige måter, og det er et eksempel ved hjelp av visuell modus. 301 00:17:21,900 --> 00:17:27,819 >> Vi vil begynne med de absolutte grunnleggende du trenger for å overleve i Vim, 302 00:17:27,819 --> 00:17:30,610 og det er i utgangspunktet disse syv kommandoene rett her. 303 00:17:30,610 --> 00:17:34,250 HJKL brukes til å navigere rundt i fila, 304 00:17:34,250 --> 00:17:37,140 og de svarer til venstre, ned, opp, og høyre, 305 00:17:37,140 --> 00:17:39,460 og du er fri til å bruke piltastene i tillegg, 306 00:17:39,460 --> 00:17:43,110 men vi virkelig oppfordre deg til å bruke HJKL så mye som mulig 307 00:17:43,110 --> 00:17:46,690 fordi ideen er at mens du redigerer, kan du flytte rundt i dokumentet 308 00:17:46,690 --> 00:17:49,350 uten å måtte skifte mellom piltastene 309 00:17:49,350 --> 00:17:52,210 og hvor du skriver, noe som er veldig, veldig hyggelig. 310 00:17:52,210 --> 00:17:54,390 Du bare ønsker å flytte noen få tegn over. 311 00:17:54,390 --> 00:17:58,020 Du trenger ikke å skifte hele hånden over, og det er litt fint å ha det. 312 00:17:58,020 --> 00:18:01,920 Noen Vim eksperter faktisk kartlegge deres piltastene til andre funksjoner 313 00:18:01,920 --> 00:18:06,880 fordi de allerede har HJKL, og de kan bruke sine piltastene for andre funksjoner i tillegg. 314 00:18:06,880 --> 00:18:09,080 HJKL beveger deg rundt mens du er i normal modus. 315 00:18:09,080 --> 00:18:11,650 Hvis du ønsker å gå inn i innsettingsmodus og skriver noe 316 00:18:11,650 --> 00:18:15,370 du kan trykke i for innsetting modus, og som setter deg i innsettingsmodus, 317 00:18:15,370 --> 00:18:17,820 og du kan skrive noe, og du skriver flukt 318 00:18:17,820 --> 00:18:20,270 å komme fra innsettingsmodus tilbake til normal modus. 319 00:18:20,270 --> 00:18:23,280 Escape alltid sender deg tilbake til normal modus 320 00:18:23,280 --> 00:18:26,740 uansett hvilken modus du er i, og hvis du ønsker å forlate 321 00:18:26,740 --> 00:18:29,760 du kan skrive inn: wq inn, 322 00:18:29,760 --> 00:18:32,640 og måten du kan huske dette er w står for skriving, 323 00:18:32,640 --> 00:18:34,960 og q står for slutte, så: wq, 324 00:18:34,960 --> 00:18:39,680 og tykktarm kjører kommandoen, og så: wq enter for å kjøre kommandoen 325 00:18:39,680 --> 00:18:41,840 lagrer og utganger. 326 00:18:41,840 --> 00:18:46,700 >> Hvis du åpner filen opp vi vil gå gjennom den første øvelsen sammen. 327 00:18:46,700 --> 00:18:49,450 Trinn en er å overleve i Vim, 328 00:18:49,450 --> 00:18:53,490 og forhåpentligvis dere har alt dette åpent. 329 00:18:53,490 --> 00:18:58,460 Bra, og vi har noen enkle øvelser for deg å bli vant til å bruke disse tastene. 330 00:18:58,460 --> 00:19:03,000 HJKL egentlig ikke synes intuitivt ved første, 331 00:19:03,000 --> 00:19:08,710 og dette er en av de første blokkene som folk har når du bruker Vim 332 00:19:08,710 --> 00:19:10,820 er å bruke disse tastene til å navigere rundt. 333 00:19:10,820 --> 00:19:13,650 Det er ikke intuitivt, men når du blir vant til det 334 00:19:13,650 --> 00:19:19,590 det virkelig integreres inn i ditt sinn, og mange folk ofte finne seg selv 335 00:19:19,590 --> 00:19:23,550 ved hjelp av J og K i Word eller også i Chrome, 336 00:19:23,550 --> 00:19:26,530 og faktisk folk har skapt denne Chrome plugin kalt Vimium 337 00:19:26,530 --> 00:19:29,220 som du kan bruke i Chrome eller Chromium å navigere gjennom Chrome 338 00:19:29,220 --> 00:19:31,380 ved hjelp av tastaturet ved hjelp av Vim-som snarveier, 339 00:19:31,380 --> 00:19:35,050 så folk er veldig begeistret for det, men gå videre og prøve og bruk 340 00:19:35,050 --> 00:19:41,720 HJKL å navigere mellom tallene bare så du kan bli kjent 341 00:19:41,720 --> 00:19:45,660 med hvordan disse tingene fungerer. 342 00:19:45,660 --> 00:19:50,440 >> Når du er ferdig med det, kan du også gå og leke seg med denne labyrinten jeg opprettet 343 00:19:50,440 --> 00:19:53,580 bare for moro skyld, og du kan liksom følge den stiplede linjen 344 00:19:53,580 --> 00:19:59,060 og prøv å ikke krasje inn i veggene 345 00:19:59,060 --> 00:20:07,860 og prøve å gjøre det til slutten av labyrinten. 346 00:20:07,860 --> 00:20:11,840 Hvis du bruker snarveier i Gmail eller en rekke forskjellige programmer 347 00:20:11,840 --> 00:20:15,130 du vil finne at J og K, for eksempel, blir ofte brukt til å bevege seg opp og ned, 348 00:20:15,130 --> 00:20:19,930 og som i utgangspunktet kommer fra Vim hovedsak, så du har J og K, 349 00:20:19,930 --> 00:20:22,690 og det er veldig fint fordi du kan flytte opp og ned uten å måtte 350 00:20:22,690 --> 00:20:26,210 bevege hånden frem og tilbake fra piltastene. 351 00:20:26,210 --> 00:20:29,410 La oss nå prøve å gå inn i innsettingsmodus og komme seg ut av innsettingsmodus. 352 00:20:29,410 --> 00:20:34,370 Du vil merke at akkurat nå min markøren er en stor, svart boks, 353 00:20:34,370 --> 00:20:37,300 og når du går inn i innsettingsmodus bør du finne at 354 00:20:37,300 --> 00:20:39,670 det blir en smal markør som du er vant til. 355 00:20:39,670 --> 00:20:43,730 Hvis du bruker Vim i terminalen du kanskje ikke synes dette å være tilfelle 356 00:20:43,730 --> 00:20:46,970 fordi terminalen støtter ikke denne slags tynn markøren, 357 00:20:46,970 --> 00:20:49,890 men hvis du bruker MacVim eller gvim på Windows 358 00:20:49,890 --> 00:20:54,590 Da bør du finne at det blir til en markør, og det er en veldig rask visuell indikator. 359 00:20:54,590 --> 00:20:58,270 Det er for deg å fortelle om du er i normal modus eller innsetting modus. 360 00:20:58,270 --> 00:21:02,890 >> La oss gå videre og prøve å redigere denne linjen. 361 00:21:02,890 --> 00:21:06,220 Fyll den på med din egen informasjon eller hva det er, 362 00:21:06,220 --> 00:21:11,750 og hvordan du kan gjøre det på er at du kan gå opp til slutten av den blanke, 363 00:21:11,750 --> 00:21:16,040 skriver jeg for å komme inn i innsettingsmodus, og du kan vil gå tilbake 364 00:21:16,040 --> 00:21:21,100 og skriv inn navnet ditt, og når du er ferdig å skrive 365 00:21:21,100 --> 00:21:26,520 du kan trykke escape for å komme seg ut av innsettingsmodus, 366 00:21:26,520 --> 00:21:35,930 og du kan flytte over her, type sette inn for å slette det, 367 00:21:35,930 --> 00:21:42,700 skriver flukt for å komme ut av innsettingsmodus, og du kan skrive: w inn 368 00:21:42,700 --> 00:21:44,720 for å lagre filen. 369 00:21:44,720 --> 00:21:47,420 Du kan skrive inn bare: w for å lagre filen. 370 00:21:47,420 --> 00:21:50,560 Du kan skrive inn bare: q for å avslutte uten å lagre, 371 00:21:50,560 --> 00:21:53,750 eller du kan skrive inn: wq for å lagre og avslutte. 372 00:21:53,750 --> 00:21:58,850 Riktignok ønsker vi ikke å slutte ennå, så du kan skrive inn: w. 373 00:21:58,850 --> 00:22:01,780 Og kanskje det virket litt ineffektiv i første 374 00:22:01,780 --> 00:22:05,600 fordi å flytte til det stedet du måtte skrive J en haug med ganger, 375 00:22:05,600 --> 00:22:08,670 Kanskje jeg en haug med ganger for å komme til det punktet, 376 00:22:08,670 --> 00:22:11,260 og du må trykke backspace en haug med ganger, og det virket veldig ineffektiv 377 00:22:11,260 --> 00:22:13,260 mens normalt ville du sannsynligvis bevege musen over det, 378 00:22:13,260 --> 00:22:15,880 dobbelklikk og begynner å skrive, og selvfølgelig, 379 00:22:15,880 --> 00:22:19,190 tingen er, når du først begynner med Vim, og du bare vet disse grunnleggende kommandoer, 380 00:22:19,190 --> 00:22:22,810 ja, vil det være litt tregere, men snart du lære noen mer kraftige kommandoer, 381 00:22:22,810 --> 00:22:26,380 som vil tillate deg å flytte over dokumenter mye raskere, 382 00:22:26,380 --> 00:22:29,410 og du trenger ikke å ha dette svært tungvint bruk av 383 00:22:29,410 --> 00:22:34,330 repete Js og gjenta Ks og Ls, og så videre og så videre. 384 00:22:34,330 --> 00:22:41,340 >> Eventuelle spørsmål så langt? Solid. 385 00:22:41,340 --> 00:22:44,000 Tilbake til PowerPoint. 386 00:22:44,000 --> 00:22:49,140 Nå kommer vi til å introdusere noen flere kommandoer for avanserte bevegelser. 387 00:22:49,140 --> 00:22:52,680 Du har opplevd å måtte skrive kanskje L mye eller H mye, 388 00:22:52,680 --> 00:22:57,200 og her er noen flere kommandoer du kan bruke til å bevege seg rundt raskere. 389 00:22:57,200 --> 00:23:02,990 Anta at markøren er på O borte i noen i "Dette er noe av teksten," 390 00:23:02,990 --> 00:23:06,840 og her er fem flere kommandoer du kan bruke til å flytte over hele linjen lettere. 391 00:23:06,840 --> 00:23:09,820 Så ^ og $ flytte deg til begynnelsen og slutten linje, 392 00:23:09,820 --> 00:23:14,300 og på et tidspunkt når du lærer regulære uttrykk eller andre ulike ting 393 00:23:14,300 --> 00:23:17,390 du vil finne at disse slags konvensjoner er svært vanlig. 394 00:23:17,390 --> 00:23:19,360 Den ^ refererer generelt til begynnelsen av linjen. 395 00:23:19,360 --> 00:23:21,090 The $ refererer vanligvis til slutten av linjen. 396 00:23:21,090 --> 00:23:24,130 Dette er veldig lett å huske, og på samme måte, b, e, og w, 397 00:23:24,130 --> 00:23:28,340 de er enkle å huske så godt fordi b tilsvarer sikkerhets eller begynnelsen, 398 00:23:28,340 --> 00:23:30,630 e svarer til enden, som er enden av ordet, 399 00:23:30,630 --> 00:23:35,530 og w tilsvarer det neste ordet, så w for ord. 400 00:23:35,530 --> 00:23:37,750 Og hvis du fortsette å skrive e eller fortsette å skrive w 401 00:23:37,750 --> 00:23:43,520 du legger merke til at du kan hoppe mellom ord, og det er mye raskere enn bare å skrive l.. 402 00:23:43,520 --> 00:23:46,600 >> Nå er det neste Operator-Motion Model. 403 00:23:46,600 --> 00:23:50,310 Dette er faktisk en av de viktigste årsakene til at Vim kan være så kraftig, 404 00:23:50,310 --> 00:23:54,890 og det er fordi du kan faktisk komponere ulike elementer 405 00:23:54,890 --> 00:23:58,250 til mer kraftfulle funksjoner, så generelt 406 00:23:58,250 --> 00:24:01,000 når du gjør noe i Vim du kan tenke på det som 407 00:24:01,000 --> 00:24:03,280 kombinere en operatør med en bevegelse. 408 00:24:03,280 --> 00:24:07,310 Så langt har vi bare jobbet med bevegelser, som HJKL. 409 00:24:07,310 --> 00:24:10,770 De beveger deg rundt, og deretter b og w, de også bevege deg rundt forskjellige måter, 410 00:24:10,770 --> 00:24:14,600 men vi har ikke gått ennå til å kunne slette ting eller forandre ting eller whatnot, 411 00:24:14,600 --> 00:24:19,320 og når du kombinerer operatører med bevegelser så er du i stand til å ha 412 00:24:19,320 --> 00:24:22,510 mye kraftigere virkning, slik at f.eks 413 00:24:22,510 --> 00:24:26,360 hvis jeg ønsket å slette to ord, kan jeg bruke d for sletting operatør, 414 00:24:26,360 --> 00:24:29,420 og jeg kan legge til en to for å vise at jeg ønsker å slette to ord, 415 00:24:29,420 --> 00:24:31,130 og da inkluderer jeg en bevegelse. 416 00:24:31,130 --> 00:24:33,490 Jeg kunne inkludere w å si slette to ord. 417 00:24:33,490 --> 00:24:37,740 Jeg kunne bruke noe sånt som J å si slette nedover to ganger 418 00:24:37,740 --> 00:24:39,880 og slett to linjer under meg. 419 00:24:39,880 --> 00:24:43,870 Jeg kunne si D2B å slette bakover to ganger, 420 00:24:43,870 --> 00:24:46,450 og det er enda flere bevegelser enn de som jeg har vist her 421 00:24:46,450 --> 00:24:52,120 å virkelig, virkelig gjøre Vim redigering mye kraftigere. 422 00:24:52,120 --> 00:24:55,450 >> Dette er noen av de mest populære og de mest vanlige operatører 423 00:24:55,450 --> 00:24:57,030 og er ganske lett å huske også. 424 00:24:57,030 --> 00:24:59,040 D for å slette, c for endring. 425 00:24:59,040 --> 00:25:01,560 C er i utgangspunktet akkurat det samme som endring bortsett fra at 426 00:25:01,560 --> 00:25:05,990 når du bruker c du automatisk bli satt i innsettingsmodus etterpå. 427 00:25:05,990 --> 00:25:08,050 Normalt når du bruker sletting du bruke den fra normal modus, 428 00:25:08,050 --> 00:25:10,950 og etter at du sletter noe du bo i normal modus. 429 00:25:10,950 --> 00:25:13,380 Men hvis du ønsker å endre noe, kan du bruke c 430 00:25:13,380 --> 00:25:15,960 å slette noe, og deretter umiddelbart gå inn i innsettingsmodus 431 00:25:15,960 --> 00:25:17,740 slik at du kan begynne å skrive og fikse noe. 432 00:25:17,740 --> 00:25:21,160 Y er for prøver å lure. 433 00:25:21,160 --> 00:25:25,130 Det er i utgangspunktet Vim begrep om kopiering. 434 00:25:25,130 --> 00:25:29,220 For eksempel, hvis jeg ønsker å kopiere de neste to ord jeg kan gjøre y2w eller noe sånt, 435 00:25:29,220 --> 00:25:32,120 og v er for å fremheve, egentlig. 436 00:25:32,120 --> 00:25:35,550 Og også hva som er virkelig kult er hvis du skriver en operatør to ganger 437 00:25:35,550 --> 00:25:38,890 det vil fungere på en hel linje, så hvis jeg ønsker å slette en hel linje 438 00:25:38,890 --> 00:25:41,060 Jeg kan skrive dd å slette hele linjen, 439 00:25:41,060 --> 00:25:47,370 eller hvis jeg ønsker å kopiere hele linjen jeg kan bruke åå eller noe sånt. 440 00:25:47,370 --> 00:25:51,600 >> La oss prøve dette litt mer. 441 00:25:51,600 --> 00:25:56,280 Det er en øvelse her for en avansert bevegelses operatør samt 442 00:25:56,280 --> 00:25:59,230 og enda noen andre ting jeg ikke kommer til å dekke i PowerPoint i dag, 443 00:25:59,230 --> 00:26:02,250 men du kan føle deg fri til å se over dem senere og leke seg med dem 444 00:26:02,250 --> 00:26:05,990 og bli kjent med dem. 445 00:26:05,990 --> 00:26:07,630 Operatører og bevegelser. 446 00:26:07,630 --> 00:26:14,220 For eksempel anta at det er disse to ordene du bare ønsker å slette i setningen. 447 00:26:14,220 --> 00:26:17,110 Hva du ønsker å gjøre er at du ønsker å være sikker på at din 448 00:26:17,110 --> 00:26:21,000 markøren er i begynnelsen av det første ordet du vil slette, 449 00:26:21,000 --> 00:26:26,230 og du kan skrive inn D2W, og det vil slette disse to ord til deg. 450 00:26:26,230 --> 00:26:33,140 Og ved hjelp av denne eksakte kommandoen, D2W, kan virke litt tungvint 451 00:26:33,140 --> 00:26:35,940 og meningsløst, men det er ment å uttrykke ideen 452 00:26:35,940 --> 00:26:39,380 at du kan komponere disse forskjellige tingene, og også i tilfelle 453 00:26:39,380 --> 00:26:42,730 du tilfeldigvis være i den situasjonen, så kan du ende opp med å bruke dw eller D2W, 454 00:26:42,730 --> 00:26:45,600 som jeg bruker av og til. 455 00:26:45,600 --> 00:26:50,030 Dd og cc jeg bruker mye oftere fordi du kan handle på hele linjer. 456 00:26:50,030 --> 00:26:52,000 >> For eksempel, la oss si jeg har denne tilfeldig liste her, 457 00:26:52,000 --> 00:26:59,030 og kanskje jeg ønsker å slette den linjen som sier Huskies fordi det ikke passer, bare fordi, 458 00:26:59,030 --> 00:27:01,200 og jeg vil ikke at det å gå inn i innsettingsmodus etterpå. 459 00:27:01,200 --> 00:27:03,530 Jeg ønsker å slette den, og da jeg kunne skrive dd, 460 00:27:03,530 --> 00:27:07,090 og som vil slette hele linjen. 461 00:27:07,090 --> 00:27:11,680 Men la oss si at nå er det dette andre linje som jeg ønsker å slette, 462 00:27:11,680 --> 00:27:16,850 men jeg ønsker også å fikse det og skrive om det, og da vil jeg prøve noe som cc, 463 00:27:16,850 --> 00:27:19,550 og som sletter hele linjen, men setter meg i innsettingsmodus, som du kan se, 464 00:27:19,550 --> 00:27:24,970 og jeg kan fikse det derfra. 465 00:27:24,970 --> 00:27:28,510 Og det er mange, mange forskjellige måter du kan kombinere operatører og bevegelser, 466 00:27:28,510 --> 00:27:31,360 og som du bruker Vim mer og mer du lære mer om ulike måter 467 00:27:31,360 --> 00:27:36,300 du kan bruke disse kommandoene, og du vil bli bedre og bedre. 468 00:27:36,300 --> 00:27:40,180 Awesome, nå her er noen andre diverse kommandoer 469 00:27:40,180 --> 00:27:44,700 som også er svært, svært ofte brukt og vil også hjelpe deg å bli bedre på Vim. 470 00:27:44,700 --> 00:27:48,780 >> For eksempel snakket vi om små bokstaver v for visuell utheving. 471 00:27:48,780 --> 00:27:51,530 Vi kan også bruke store bokstaver V for visuell linje utheving. 472 00:27:51,530 --> 00:27:55,880 På den måten kan du markere hele linjer på en gang mye lettere. 473 00:27:55,880 --> 00:27:59,180 Du kan bruke o når du er i normal modus for å i utgangspunktet sette inn en ny linje 474 00:27:59,180 --> 00:28:03,620 under linjen du er nå, og sette den inn i innsettingsmodus for å begynne å skrive. 475 00:28:03,620 --> 00:28:07,270 Du kan bruke liten x for å slette tegnet som er under markøren. 476 00:28:07,270 --> 00:28:10,230 Du kan også bruke u å angre, som er slags hyggelig, 477 00:28:10,230 --> 00:28:14,180 og du kan bruke kapital A til føye til slutten av gjeldende linje, 478 00:28:14,180 --> 00:28:18,310 så kanskje markøren er et sted på linjen, og du ønsker å legge til slutten av linjen. 479 00:28:18,310 --> 00:28:21,150 Deretter kan du skrive inn kapital A til umiddelbart hoppe til slutten av linjen 480 00:28:21,150 --> 00:28:25,140 og gå inn i innsettingsmodus, slik at du kan legge til slutten av linjen. 481 00:28:25,140 --> 00:28:30,840 >> Jeg tror jeg har noen flere øvelser for det som vi kan prøve ut. 482 00:28:30,840 --> 00:28:33,240 Egentlig, nei, jeg gjør ikke det. Ikke for dem. 483 00:28:33,240 --> 00:28:35,810 Men vi har noen flere øvelser for den neste delen som vi får se. 484 00:28:35,810 --> 00:28:38,420 Men disse kan du prøve ut selv også. 485 00:28:38,420 --> 00:28:45,610 For eksempel, hvis du skriver inn i vanlig v, vil du få regelmessig utheving som du er vant til å like dette. 486 00:28:45,610 --> 00:28:49,800 Hvis du skriver inn kapital V, kan du få full linje utheving sånn, 487 00:28:49,800 --> 00:28:55,850 eller hvis jeg skriver i o det i utgangspunktet vil åpne en ny linje for meg, som er litt fint. 488 00:28:55,850 --> 00:28:58,850 X Jeg kan bruke til å slette tegn på markøren. 489 00:28:58,850 --> 00:29:00,800 Jeg kan trykke på x en haug med ganger og slette ting. 490 00:29:00,800 --> 00:29:06,720 Jeg kan trykke u å angre alt det der. 491 00:29:06,720 --> 00:29:09,600 A, kan jeg skrive inn A til umiddelbart gå til slutten av linjen, 492 00:29:09,600 --> 00:29:14,040 og jeg har også tatt med noen andre fine taster 493 00:29:14,040 --> 00:29:19,240 at du også kan se på etter presentasjonen for å lære noen andre kommandoer. 494 00:29:19,240 --> 00:29:21,250 >> [Student] Hva er erstatning om? 495 00:29:21,250 --> 00:29:23,050 [Brandon L.] Erstatning er også veldig kult 496 00:29:23,050 --> 00:29:26,240 og i utgangspunktet hvis du går et sted- 497 00:29:26,240 --> 00:29:30,060 har du noen gang-folk egentlig ikke bruker det så mye lenger i disse dager, 498 00:29:30,060 --> 00:29:34,340 men har dere noen gang sett i Microsoft Word hvis du skriver innsats 499 00:29:34,340 --> 00:29:37,840 du plutselig gå inn i denne rare modus der hver enkelt tegn du skriver 500 00:29:37,840 --> 00:29:39,570 i hovedsak erstatter den neste tegn? 501 00:29:39,570 --> 00:29:41,020 Jeg vet ikke om dere har sett det. 502 00:29:41,020 --> 00:29:43,250 Dette ligner på det. 503 00:29:43,250 --> 00:29:47,150 For eksempel, hvis jeg ønsker å overskrive hva jeg har for tiden en eller annen grunn 504 00:29:47,150 --> 00:29:51,300 Jeg kan skrive i hovedstaden R, og jeg skal nå være i bytte modus, som du kan se nederst i venstre. 505 00:29:51,300 --> 00:29:58,380 Hvis jeg skriver ting det overskriver ting, og jeg kan også backspace, som er litt kult, 506 00:29:58,380 --> 00:30:00,140 og jeg kan angre det. 507 00:30:00,140 --> 00:30:06,980 Jeg bruker ikke det så ofte, men nå og da blir det praktisk. 508 00:30:06,980 --> 00:30:14,150 >> La oss snakke om tekstobjekter, som er en av mine favoritt ting om Vim, ærlig. 509 00:30:14,150 --> 00:30:19,660 Tekstobjekter er i utgangspunktet denne oppfatningen av å definere en slags klump av tekst 510 00:30:19,660 --> 00:30:26,550 inni tekstfilen, og jeg skal gå over disse tastene først, 511 00:30:26,550 --> 00:30:29,860 og så skal jeg gi deg noen demonstrasjoner for deg til mer fullt ut forstår hva det betyr. 512 00:30:29,860 --> 00:30:34,650 W refererer til et ord, som et tekstobjekt som et ord, 513 00:30:34,650 --> 00:30:36,480 så noen ord som du vanligvis kjenner det, 514 00:30:36,480 --> 00:30:39,300 og hvis det er tegnsetting som er ved siden av ordet 515 00:30:39,300 --> 00:30:43,490 da det ikke vil inkludere tegnsetting generelt. 516 00:30:43,490 --> 00:30:46,440 Men for eksempel, hvis du ønsker å inkludere tegnsetting eller annen grunn 517 00:30:46,440 --> 00:30:49,080 eller du gjør noe som ikke er engelsk og du ønsker å inkludere 518 00:30:49,080 --> 00:30:51,180 alle tegnene som er avgrenset med mellomrom 519 00:30:51,180 --> 00:30:55,390 du kan også bruke kapital W for å få alt som er omgitt av mellomrom. 520 00:30:55,390 --> 00:30:58,510 Du kan også bruke parenteser for å referere til et tekstobjekt 521 00:30:58,510 --> 00:31:00,170 som er inne i et sett med parenteser. 522 00:31:00,170 --> 00:31:03,950 Du kan gjøre det samme med hakeparenteser, vinkelparenteser, 523 00:31:03,950 --> 00:31:06,450 bukseseler, og sitater så vel, og til slutt, 524 00:31:06,450 --> 00:31:10,970 du kan også bruke t å referere til noen tag. 525 00:31:10,970 --> 00:31:15,390 >> La meg vise deg hvordan det faktisk spiller ut. 526 00:31:15,390 --> 00:31:21,380 For eksempel, er dette min aller første eksempel i min presentasjon. 527 00:31:21,380 --> 00:31:26,950 Det er noen ord i denne setningen som jeg ønsker å endre, 528 00:31:26,950 --> 00:31:30,560 og vi snakket om W blir brukt som en bevegelse, 529 00:31:30,560 --> 00:31:33,170 men du kan også bruke den som et tekstobjekt som så. 530 00:31:33,170 --> 00:31:40,940 For eksempel, en måte jeg kunne endre Barack navn eller utgangspunktet endre det 531 00:31:40,940 --> 00:31:46,730 er jeg kunne gå til begynnelsen av dette ordet og skriv inn c for endring og w for ord, 532 00:31:46,730 --> 00:31:51,650 og som vil slette hele ordet og sette det inn i innsettingsmodus. 533 00:31:51,650 --> 00:31:54,240 Men det er veldig irriterende for meg å måtte gå til begynnelsen av ordet hele tiden. 534 00:31:54,240 --> 00:31:56,530 Det er veldig irriterende. Jeg ønsker ikke å måtte gjøre det. 535 00:31:56,530 --> 00:32:00,390 Jeg kan faktisk være hvor som helst inne i hans navn 536 00:32:00,390 --> 00:32:03,930 og skriver i CIW, og jeg står for indre, 537 00:32:03,930 --> 00:32:06,590 så hvis jeg skriver i CIW det står for endring i et ord, 538 00:32:06,590 --> 00:32:10,150 eller med andre ord, endre ordet jeg er for tiden inne, 539 00:32:10,150 --> 00:32:13,280 og det vil gi deg nøyaktig samme effekt. 540 00:32:13,280 --> 00:32:17,130 Du kan fikse det. 541 00:32:17,130 --> 00:32:21,390 >> Tilsvar, kanskje jeg har noen sak som dette 542 00:32:21,390 --> 00:32:27,920 hvor en eller annen grunn er det noen skilletegn eller noe sånt, 543 00:32:27,920 --> 00:32:31,700 eller er det noen tegnsetting, og jeg ønsket å slette hele greia. 544 00:32:31,700 --> 00:32:36,530 Hvis jeg skriver i CIW vil den slette hva som er inni disse skilletegn, 545 00:32:36,530 --> 00:32:39,830 men jeg ønsker å få hele greia som er omgitt av mellomrom, 546 00:32:39,830 --> 00:32:42,750 slik at jeg kan bruke CIW å slette hele greia. 547 00:32:42,750 --> 00:32:51,000 Jeg skal skrive i fem, gjør det samme, og skriv inn seks. 548 00:32:51,000 --> 00:32:53,670 Tilsvarende, hvis jeg ønsker å endre noe som er inni parentesen 549 00:32:53,670 --> 00:32:58,340 Jeg kan skrive inn ci) for å slette alt som er inni parentesen 550 00:32:58,340 --> 00:33:05,460 og deretter fylle i hva jeg ønsker å gjøre, som int argc, uansett hva du ønsker å gjøre, 551 00:33:05,460 --> 00:33:07,330 og på samme måte, det samme med anførselstegn. 552 00:33:07,330 --> 00:33:13,130 Jeg kan fikse tekst som er inne i anførselstegn, 553 00:33:13,130 --> 00:33:21,540 og jeg kan også endre ting som er inne i koder. 554 00:33:21,540 --> 00:33:24,400 Betyr det fornuftig? 555 00:33:24,400 --> 00:33:27,020 >> En annen ting du kan gjøre er at du ikke trenger å bruke c. 556 00:33:27,020 --> 00:33:30,690 Du kan også bruke d hvis du vil slette det som er inni disse kodene. 557 00:33:30,690 --> 00:33:35,370 Hvis jeg ønsker å slette teksten inne en kode kan jeg bruke dit for å slette denne koden. 558 00:33:35,370 --> 00:33:40,360 Jeg kan også bruke vit å markere hva som er inni koden, for eksempel. 559 00:33:40,360 --> 00:33:43,920 Den andre tingen er stedet for å bruke jeg i midten du kan også bruke en, 560 00:33:43,920 --> 00:33:49,490 som står for alle, så husk hvis du bruker jeg det vil referere til tekstobjekt 561 00:33:49,490 --> 00:33:52,260 eller bruke en tekstobjekt som er inneholdt inne i skilletegn, 562 00:33:52,260 --> 00:33:56,000 men hvis du bruker en det vil inkludere at teksten så vel som skilletegn i seg selv. 563 00:33:56,000 --> 00:33:59,180 For eksempel, hvis jeg ønsker å fremheve denne teksten og den omkringliggende tag 564 00:33:59,180 --> 00:34:05,390 Jeg kan bruke vat, v for visuell høydepunkt, en for alle, og deretter t for taggen. 565 00:34:05,390 --> 00:34:08,350 Du kan gjøre noe sånt også. 566 00:34:08,350 --> 00:34:15,810 Kanskje jeg vil slette denne google.com med anførselstegn rundt det også, 567 00:34:15,810 --> 00:34:22,860 og jeg kan bruke noe sånt da "for å slette alt dette, for eksempel. 568 00:34:22,860 --> 00:34:26,520 >> Eventuelle spørsmål så langt? 569 00:34:26,520 --> 00:34:32,270 Jeg innser at jeg dumping på deg mye Vim kommandoer på en gang, 570 00:34:32,270 --> 00:34:36,210 og dette er i utgangspunktet fordi jeg ønsker å utsette deg for alle de forskjellige kommandoene 571 00:34:36,210 --> 00:34:39,480 og gi deg en innføring i hva disse kommandoene gjør i Vim. 572 00:34:39,480 --> 00:34:41,460 Men hva som kommer til å skje er når du går tilbake 573 00:34:41,460 --> 00:34:44,250 du er nødt til å sakte plukke opp disse kommandoene en etter en. 574 00:34:44,250 --> 00:34:47,880 Du ønsker ikke å overvelde deg selv, fordi det er for overveldende. 575 00:34:47,880 --> 00:34:50,460 Hvis du ønsker å plukke opp Vim hva du må virkelig gjøre er 576 00:34:50,460 --> 00:34:53,590 starter med den første grunnleggende sett, og jeg har brutt den opp i leksjoner for deg 577 00:34:53,590 --> 00:34:57,830 som gjør det enklere for deg å følge, og prøve og mestre hvert sett med kommandoer 578 00:34:57,830 --> 00:35:00,400 en for en, en av gangen. 579 00:35:00,400 --> 00:35:03,500 Det er for mye å gjøre alt på en gang, så hva du bør gjøre når du går tilbake er 580 00:35:03,500 --> 00:35:10,950 gå til den første leksjonen, som er HJKL, innsetting modus, flykte inn i normal modus, 581 00:35:10,950 --> 00:35:13,790 og lagre og avslutte, og det er alt du egentlig trenger for å overleve i Vim, 582 00:35:13,790 --> 00:35:15,220 og får veldig, veldig komfortabel med det. 583 00:35:15,220 --> 00:35:18,270 Og etter et par dager når du er veldig komfortabel med at 584 00:35:18,270 --> 00:35:21,170 du bør gå videre til mer avanserte bevegelses operatører, 585 00:35:21,170 --> 00:35:25,890 de mer avanserte bevegelser, og videre til operatørene og så videre og så videre. 586 00:35:25,890 --> 00:35:32,160 >> Jeg vet at jeg skal gjennom mye, men jeg ønsker å få deg utsatt for en rekke forskjellige ting. 587 00:35:32,160 --> 00:35:36,080 Men i tilfelle du er klar for utfordringen, kan jeg vise deg 588 00:35:36,080 --> 00:35:43,690 hvordan du kan sette alt dette sammen ved hjelp av det meste av hva vi nettopp har lært i dag, 589 00:35:43,690 --> 00:35:46,280 og du kan også følge med hvis du vil, 590 00:35:46,280 --> 00:35:48,590 men jeg har laget noen tilfeldig trening. 591 00:35:48,590 --> 00:35:51,140 Anta at vi har en slags liste som dette 592 00:35:51,140 --> 00:35:53,200 hvor du har disse blokkene med folks navn, 593 00:35:53,200 --> 00:35:55,440 hus, år, og konsentrasjoner og whatnot, 594 00:35:55,440 --> 00:35:59,240 og du vil legge til en ny oppføring for deg selv. 595 00:35:59,240 --> 00:36:01,530 Hva er den beste måten for deg å gjøre dette? 596 00:36:01,530 --> 00:36:03,240 La oss gjøre det slik. 597 00:36:03,240 --> 00:36:06,620 Hvorfor ikke vi først markere denne blokken. 598 00:36:06,620 --> 00:36:08,710 Du kommer til å velge det, og vi kan trykke y å dra heller, 599 00:36:08,710 --> 00:36:11,180 så nå kan vi i utgangspunktet kopiere og lime inn denne malen først 600 00:36:11,180 --> 00:36:16,500 uten å måtte skrive hele greia fra scratch. 601 00:36:16,500 --> 00:36:20,390 Nå skal jeg trykke på j ned en haug med ganger for å gå ned, 602 00:36:20,390 --> 00:36:22,560 og jeg skal trykke p å lime det. 603 00:36:22,560 --> 00:36:26,990 Kanskje jeg skal legge til noen ekstra linjer for en plass, 604 00:36:26,990 --> 00:36:31,130 og la oss si at nå vil jeg endre navnet ditt til noen. 605 00:36:31,130 --> 00:36:36,220 Da kan jeg gå her og skriv inn c2w som før til å endre det navnet. 606 00:36:36,220 --> 00:36:38,860 Bob Jones, hvem vet. 607 00:36:38,860 --> 00:36:41,470 Kanskje hvis jeg ønsker å endre huset jeg kan gå inn i midten her 608 00:36:41,470 --> 00:36:44,230 og skriv inn CIW og sette Cabot House. 609 00:36:44,230 --> 00:36:47,850 >> Her kan være et eksempel på hvor det kan være lurt å vurdere å bruke 610 00:36:47,850 --> 00:36:52,970 utskifting modus for å endre din konfirmasjonen år hvis du vil, 611 00:36:52,970 --> 00:36:54,890 eller vi kan også bruke CIW også. 612 00:36:54,890 --> 00:36:57,550 Det spiller ingen rolle. 613 00:36:57,550 --> 00:37:07,180 Kanskje du ønsker å endre din store. 614 00:37:07,180 --> 00:37:11,310 Og det er hva du gjør. 615 00:37:11,310 --> 00:37:17,170 Og kanskje jeg vil gi deg en demonstrasjon av hva jeg kan gjøre 616 00:37:17,170 --> 00:37:23,820 hvis jeg var-hvis du fortsetter å lære mer avanserte kommandoer i Vim 617 00:37:23,820 --> 00:37:25,690 fordi vi knapt skrape overflaten her, 618 00:37:25,690 --> 00:37:28,960 og jeg kunne gjøre denne typen redigering enda raskere enn jeg har vist deg her 619 00:37:28,960 --> 00:37:32,860 fordi jeg vet flere kommandoer som jeg ikke har fått en sjanse til å vise deg for i dag. 620 00:37:32,860 --> 00:37:37,500 For eksempel, hvis jeg ønsker å fremheve dette jeg kan gjøre det sånn, 621 00:37:37,500 --> 00:37:39,960 flytte ned. 622 00:37:39,960 --> 00:37:43,860 Jeg har lagt min egen kartlegging 623 00:37:43,860 --> 00:37:48,100 til utgangspunktet automatisk markere ting for meg 624 00:37:48,100 --> 00:38:02,610 og jeg kan-jeg vet ikke. 625 00:38:02,610 --> 00:38:05,260 Jeg mener, er dette bare prøver å vise deg at du kan virkelig, virkelig 626 00:38:05,260 --> 00:38:08,180 begynne å redigere ting raskere, spesielt når du har alle disse ulike felt, 627 00:38:08,180 --> 00:38:10,620 og normalt hva kan du gjøre er liksom klikke 628 00:38:10,620 --> 00:38:13,530 og fremheve og deretter skrive. 629 00:38:13,530 --> 00:38:18,530 Du kan gjøre alt på en gang, kopiere og lime inn, 630 00:38:18,530 --> 00:38:21,640 beveger seg opp og ned mellom filen, 631 00:38:21,640 --> 00:38:24,060 bare avgrense ting, formatering ting. 632 00:38:24,060 --> 00:38:29,670 Alt dette kan gjøres mye, mye raskere i Vim. 633 00:38:29,670 --> 00:38:32,580 >> Bare en siste liten ting som jeg tror kan være veldig hyggelig, 634 00:38:32,580 --> 00:38:34,820 som er å finne og erstatte. 635 00:38:34,820 --> 00:38:36,460 De av dere som har brukt Gmail snarveier 636 00:38:36,460 --> 00:38:41,050 vil du også vite at hvis du skriver inn / det sender deg til søkeboksen, 637 00:38:41,050 --> 00:38:44,210 og i en rekke forskjellige applikasjoner generelt vil du finne at skråstrek 638 00:38:44,210 --> 00:38:47,300 eller kanskje kontrollere skråstrek eller noe å gjøre med skråstrek 639 00:38:47,300 --> 00:38:49,870 vil sette deg inn i en slags søkemodus, 640 00:38:49,870 --> 00:38:53,240 og som også i utgangspunktet kommer fra Vim hovedsak 641 00:38:53,240 --> 00:38:58,670 fordi skråstreken operatør eller slash-kommandoen lar deg legge inn 642 00:38:58,670 --> 00:39:01,770 en slags streng som du kan bruke til å søke i dokumentet. 643 00:39:01,770 --> 00:39:05,350 Du kan n og kapital N for å gå til neste eller forrige forekomst, 644 00:39:05,350 --> 00:39:10,700 og du kan også bruke noe lignende for å søke og erstatte i dokumentet. 645 00:39:10,700 --> 00:39:15,060 Jeg skal gi deg en demonstrasjon på hva som kan gjøres. 646 00:39:15,060 --> 00:39:18,200 >> Kanskje hvis jeg ønsker å finne alle forekomster av strengen Yank i dette dokumentet 647 00:39:18,200 --> 00:39:23,310 Jeg kan skrive inn / rykk, som du kan se nederst i venstre hjørne, 648 00:39:23,310 --> 00:39:26,350 og når jeg skriver inn det fremhever alle forekomster. 649 00:39:26,350 --> 00:39:34,160 Jeg kan bruke i utgangspunktet n å hoppe frem og tilbake mellom alle de forskjellige instanser, 650 00:39:34,160 --> 00:39:40,420 og la oss anta at jeg ønsker å søke og erstatte Yank med noen tilfeldige ord 651 00:39:40,420 --> 00:39:42,180 det er også i dokumentet. 652 00:39:42,180 --> 00:39:47,070 Jeg kan trykke på: å begynne å skrive i en slags kommando innen Vim, 653 00:39:47,070 --> 00:39:49,610 noen kommando som er mer sofistikert enn å flytte rundt 654 00:39:49,610 --> 00:39:51,370 eller slette eller noe sånt. 655 00:39:51,370 --> 00:39:56,860 Jeg vil skrive inn tegn% å henvise at jeg ønsker å bruke denne substitusjon kommandoen 656 00:39:56,860 --> 00:39:58,230 på hele dokumentet. 657 00:39:58,230 --> 00:40:02,380 Skriv inn s for substitusjon. Dette kommer fra PEARL hovedsak. 658 00:40:02,380 --> 00:40:07,040 Og dette neste kommando er en ganske standard kommando som du finner i PEARL 659 00:40:07,040 --> 00:40:09,790 stedet og i andre programmeringsspråk som du vil 660 00:40:09,790 --> 00:40:13,170 sannsynligvis begynne å lære så du gjøre mer informatikk, 661 00:40:13,170 --> 00:40:20,130 og jeg kan i utgangspunktet bruke / til å skrive en /, skriv inn ordet jeg ønsker å finne og erstatte 662 00:40:20,130 --> 00:40:24,280 og skriv deretter inn en annen / og skrive inn det ordet jeg ønsker å erstatte det ordet med. 663 00:40:24,280 --> 00:40:27,450 Hvem vet, kanskje nyancat. 664 00:40:27,450 --> 00:40:30,390 Jeg gjør det, og da vil du se at alt fikk erstattet. 665 00:40:30,390 --> 00:40:34,000 >> Men du vil merke at det er dette ordet her. 666 00:40:34,000 --> 00:40:37,620 For en eller annen grunn noen av våre tilfeller av yank blir erstattet, men ikke alle, 667 00:40:37,620 --> 00:40:40,250 og det er fordi måten denne typen språk er skrevet 668 00:40:40,250 --> 00:40:43,550 ikke bare i Vim, men andre steder er at når du kjører substitusjon kommandoen 669 00:40:43,550 --> 00:40:46,470 det vil bare erstatte den første forekomsten av ordet i hver linje, 670 00:40:46,470 --> 00:40:52,810 så hvis jeg vil faktisk erstatte alle forekomster av ordet på hver enkelt linje 671 00:40:52,810 --> 00:40:56,890 så jeg må gjøre det samme, men legger ag flagg helt på slutten, 672 00:40:56,890 --> 00:41:00,810 som står for global, og så vil det faktisk 673 00:41:00,810 --> 00:41:06,200 erstatte alle forekomster. 674 00:41:06,200 --> 00:41:09,710 Og når du lærer de regulære uttrykk, det er faktisk en CS50 seminar 675 00:41:09,710 --> 00:41:12,120 på regulære uttrykk, så hvis du er nysgjerrig på regulære uttrykk 676 00:41:12,120 --> 00:41:16,970 du kan også ta det seminar og lære mer. 677 00:41:16,970 --> 00:41:19,920 >> Men for eksempel, la oss si jeg har en liste med navn som dette, 678 00:41:19,920 --> 00:41:23,920 og jeg ønsker å omorganisere det, så i stedet for å ha etternavn, komma, fornavn 679 00:41:23,920 --> 00:41:27,490 Jeg ønsker å omorganisere det slik det står fornavn, mellomrom, etternavn. 680 00:41:27,490 --> 00:41:30,750 Du kan faktisk bruke denne kommandoen her 681 00:41:30,750 --> 00:41:33,600 egentlig gjøre det for deg, slik som du kan se her 682 00:41:33,600 --> 00:41:37,170 Vi starter med en s, som betyr at vi ønsker å gjøre et søk og erstatt, 683 00:41:37,170 --> 00:41:42,970 og så la jeg til en som heter flagg \ v, som er noe som heter dette magiske flagg 684 00:41:42,970 --> 00:41:45,810 i Vim som lar deg gjøre vanlige uttrykk lettere. 685 00:41:45,810 --> 00:41:49,370 Så fra det vi i utgangspunktet matche for noen enkelt linje 686 00:41:49,370 --> 00:41:55,960 som er av form et sett med ord, komma, mellomrom, og et sett av ord eller et sett med bokstaver. 687 00:41:55,960 --> 00:41:59,240 \ W + betyr i utgangspunktet ett eller flere tegn, 688 00:41:59,240 --> 00:42:04,030 og parentesene benyttes for å fange opp disse grupper 689 00:42:04,030 --> 00:42:06,120 slik at jeg kan referere til dem senere. 690 00:42:06,120 --> 00:42:09,910 Som du kan se, når disse fangst to blokker av ord 691 00:42:09,910 --> 00:42:11,690 som er atskilt med et komma, mellomrom 692 00:42:11,690 --> 00:42:15,510 så hva vi ønsker å erstatte den med er at jeg bruker \ 2 og \ 1 693 00:42:15,510 --> 00:42:18,130 å se tilbake på det som var blitt tatt til fange 694 00:42:18,130 --> 00:42:20,950 i selve find-kommandoen, 695 00:42:20,950 --> 00:42:24,970 og så \ 2 refererer til det som er inneholdt i det andre settet med parenteser 696 00:42:24,970 --> 00:42:28,140 \ En refererer til det som er inneholdt i det første settet med parenteser, 697 00:42:28,140 --> 00:42:31,680 og som du kan se, jeg setter to før en atskilt med et mellomrom 698 00:42:31,680 --> 00:42:36,650 å prøve og flytte fornavn før etternavn. 699 00:42:36,650 --> 00:42:38,380 Betyr det fornuftig? 700 00:42:38,380 --> 00:42:43,450 >> Og hva jeg kan gjøre er at jeg kan skjule disse først så jeg bare kjøre denne kommandoen på disse linjene, 701 00:42:43,450 --> 00:42:53,720 og så skal jeg skrive inn denne kommandoen. 702 00:42:53,720 --> 00:42:57,050 Du kan se den gjør akkurat som delt. 703 00:42:57,050 --> 00:42:59,400 Og igjen, dette er knapt skrape overflaten, 704 00:42:59,400 --> 00:43:03,020 og hvis du går til det vanlige uttrykket seminar så jeg er sikker på at du vil lære 705 00:43:03,020 --> 00:43:05,070 mye mer forskjellige ting du kan gjøre med regulære uttrykk, 706 00:43:05,070 --> 00:43:08,910 og dette i utgangspunktet begynner å antyde hva du egentlig kan gjøre med Vim 707 00:43:08,910 --> 00:43:10,850 hvis du virkelig begynner å bli en mester i det. 708 00:43:10,850 --> 00:43:14,520 Kanskje du ønsker å refactor noe, og du vil finne alle forekomster 709 00:43:14,520 --> 00:43:16,980 av noen funksjon som følger en slags navnemønsteret. 710 00:43:16,980 --> 00:43:18,570 Du ønsker å endre måten som er oppkalt etter. 711 00:43:18,570 --> 00:43:21,140 Du kan skrive en slags kommando som dette for å gjøre det for deg, 712 00:43:21,140 --> 00:43:23,850 og det er den slags fleksibilitet du kan få innen Vim 713 00:43:23,850 --> 00:43:30,210 at du bare ikke kommer til å få i andre tekstbehandlingsprogram. 714 00:43:30,210 --> 00:43:34,830 >> Som i utgangspunktet dekker alle de tingene jeg ønsket å lære deg i dag i dagens seminar, 715 00:43:34,830 --> 00:43:38,580 men igjen, jeg virkelig ønsker å understreke at hvis du ønsker å plukke opp Vim 716 00:43:38,580 --> 00:43:42,120 det er sant at det er en noe høyere læringskurve i begynnelsen. 717 00:43:42,120 --> 00:43:44,230 I begynnelsen vil du være litt mindre produktive 718 00:43:44,230 --> 00:43:47,010 enn du sannsynligvis ville være noe annet, men hvis du holder deg med det 719 00:43:47,010 --> 00:43:49,890 i løpet av noen dager eller et par uker, avhengig av hvor fort du lærer, 720 00:43:49,890 --> 00:43:56,300 du vil bli mye, mye raskere, og jeg prøvde å gi deg en demonstrasjon 721 00:43:56,300 --> 00:43:59,070 på hva Vim er i stand til, men jeg gjorde egentlig ikke får en sjanse til å vise deg 722 00:43:59,070 --> 00:44:03,230 hva skjer når jeg normalt, for eksempel, i klassen jeg skriver i mine notater med Vim. 723 00:44:03,230 --> 00:44:07,920 Det er fordi jeg kan jobbe så mye raskere i Vim enn jeg kan med alle andre program. 724 00:44:07,920 --> 00:44:14,480 Det er bokstavelig talt en 2 eller 3 gang produktivitetsøkning i Vim forhold til andre programmer, 725 00:44:14,480 --> 00:44:18,800 ikke bare med hastigheten på tekstredigering, men også i måten kan jeg flytte rundt i dokumentet 726 00:44:18,800 --> 00:44:21,510 og måten jeg kan få tilgang til andre filer på datamaskinen min 727 00:44:21,510 --> 00:44:23,110 og hoppe mellom dem og så videre og så videre. 728 00:44:23,110 --> 00:44:27,600 Det er bare en veldig, veldig stor produktivitet boost. 729 00:44:27,600 --> 00:44:30,550 >> Men når du lærer, vil du sørge for at du lærer en ting om gangen, 730 00:44:30,550 --> 00:44:34,970 og prøve ikke å overvelde deg med for mange forskjellige kommandoer 731 00:44:34,970 --> 00:44:39,090 fordi det finnes en rekke kommandoer og en rekke ulike snarveier kan du lære i Vim. 732 00:44:39,090 --> 00:44:41,780 Du ønsker å plukke opp litt om gangen, og gjennom årene 733 00:44:41,780 --> 00:44:48,990 gradvis samle en større og større forståelse av Vim. 734 00:44:48,990 --> 00:44:51,790 Hvis du ønsker å fortsette å lære mer, dette er noen av de mer avanserte emner 735 00:44:51,790 --> 00:44:55,900 du kan fortsette å lære om, og selv dette skraper knapt overflaten. 736 00:44:55,900 --> 00:44:59,050 Her er noen populære plugins du kan føle deg fri til å sjekke ut og Google dem 737 00:44:59,050 --> 00:45:03,750 og leke seg med dem hvis du vil, og bare se hva slags plugins er der ute. 738 00:45:03,750 --> 00:45:06,260 Og så på slutten av denne PowerPoint, inkluderer jeg en haug med lenker 739 00:45:06,260 --> 00:45:08,740 til ulike ressurser kan du bruke til å lære av. 740 00:45:08,740 --> 00:45:12,700 Her er en haug med forskjellige linker du kan bruke til å komme i gang med Vim. 741 00:45:12,700 --> 00:45:15,150 De har forskjellige tutorials og whatnot, 742 00:45:15,150 --> 00:45:17,770 og til slutt, dette er noen mer avanserte ting du kan bruke 743 00:45:17,770 --> 00:45:19,790 å også sjekke ut også, 744 00:45:19,790 --> 00:45:22,340 noen skjerm kast og noen mer avanserte teknikker i Vim 745 00:45:22,340 --> 00:45:26,450 og også noen ulike deler av kildekoden kan du slå opp på GitHub 746 00:45:26,450 --> 00:45:28,760 bare for å se på andre folks konfigurasjonsfiler 747 00:45:28,760 --> 00:45:32,710 eller å se på plugins i Vim og så videre og så videre. 748 00:45:32,710 --> 00:45:40,380 >> Det er alt jeg har for deg. 749 00:45:40,380 --> 00:45:43,000 [CS50.TV]