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 [Det här är CS50.] [CS50.TV] 4 00:00:07,500 --> 00:00:09,880 >> I dag kommer att bli en introduktion till Vim. 5 00:00:09,880 --> 00:00:12,310 Hur många av er har hört talas om Vim? 6 00:00:12,310 --> 00:00:15,620 Vad har du hört om Vim? 7 00:00:15,620 --> 00:00:17,590 [Student] Det löser alla dina problem. 8 00:00:17,590 --> 00:00:19,450 [Brandon L.] Det löser alla dina problem. 9 00:00:19,450 --> 00:00:23,840 Något annat ni har hört talas om Vim? Några visningar? 10 00:00:23,840 --> 00:00:27,990 [Student] Nästan alla jag har pratat med gillar att använda Vim. 11 00:00:27,990 --> 00:00:29,960 Åh, söt. 12 00:00:29,960 --> 00:00:31,090 [Student] Många människor jag känner gillar att använda Vim. 13 00:00:31,090 --> 00:00:35,050 Okej, det är bra, eftersom många människor i CS51 14 00:00:35,050 --> 00:00:38,000 börja plocka upp Emacs eftersom Emacs har något bättre stöd 15 00:00:38,000 --> 00:00:40,100 för det språk du ska använda i CS51, 16 00:00:40,100 --> 00:00:42,770 och jag är rädd att inte tillräckligt många människor på Harvard använder Vim, 17 00:00:42,770 --> 00:00:46,190 så jag försöker verkligen och gör ett bra jobb med att uppmuntra Vim användning. 18 00:00:46,190 --> 00:00:51,110 >> Men här är ett klassiskt xkcd komiker som ni kan finna intressant. 19 00:00:51,110 --> 00:00:53,800 Har ni använt Nano innan alls? 20 00:00:53,800 --> 00:00:57,380 Denna komiska säger Nano? Verkliga programmerare använder Emacs. 21 00:00:57,380 --> 00:00:59,040 Hej, riktiga programmerare använder Vim. 22 00:00:59,040 --> 00:01:03,130 Nej, riktiga programmerare använder Ed som är här-du inte någonsin vill använda Ed. 23 00:01:03,130 --> 00:01:05,990 Det är riktigt, riktigt gamla och riktigt dåligt, och riktiga programmerare använder 24 00:01:05,990 --> 00:01:08,440 en magnetiserad nål och en stadig hand. 25 00:01:08,440 --> 00:01:16,010 Och du kan läsa resten, men det är ganska underhållande. 26 00:01:16,010 --> 00:01:18,320 Och det roliga är i slutet. 27 00:01:18,320 --> 00:01:20,310 De säger, "Ja, naturligtvis, det finns ett Emacs-kommando för att göra det." 28 00:01:20,310 --> 00:01:25,050 Good old Cx Mc M-fjäril, som är typ av en jab på Emacs 29 00:01:25,050 --> 00:01:28,520 eftersom Emacs är historiskt kända för att vara lite uppblåst 30 00:01:28,520 --> 00:01:32,310 och att ha kommandon för nästan vad som helst, så det blir liksom ett skämt för Emacs. 31 00:01:32,310 --> 00:01:35,320 >> Vad är Vim? Vim är en avancerad programmerare textredigerare. 32 00:01:35,320 --> 00:01:40,040 Jag vill verkligen göra skillnaden mellan textredigerare 33 00:01:40,040 --> 00:01:42,000 och något som liknar ett dokument processor. 34 00:01:42,000 --> 00:01:44,340 Microsoft Word är känd som en dokumentprocessor. 35 00:01:44,340 --> 00:01:49,090 Du kan ställa in marginalerna, göra saker fetstil, understrykning saker, 36 00:01:49,090 --> 00:01:51,480 slå igenom saker, ändra teckenstorlek och vad inte. 37 00:01:51,480 --> 00:01:54,380 En textredigerare gör ingenting mer än bara redigera text. 38 00:01:54,380 --> 00:01:56,020 Bokstavligen du bara tecken. 39 00:01:56,020 --> 00:02:01,650 Det finns ingen typ av styling, storlekar, typsnitt, färger, eller något liknande. 40 00:02:01,650 --> 00:02:06,360 Allt du behöver göra är redigera text, och Vim har speciellt gjort för programmering. 41 00:02:06,360 --> 00:02:09,240 Den har en mängd funktioner som byggts på bara för programmering. 42 00:02:09,240 --> 00:02:11,360 Den är utformad uttryckligen för effektiv textredigering. 43 00:02:11,360 --> 00:02:15,190 >> I allmänhet är Vim kända för att vara i stort sett den snabbaste textredigerare 44 00:02:15,190 --> 00:02:19,110 du kan eventuellt använda jämföras med någon annan textredigerare som är möjligt. 45 00:02:19,110 --> 00:02:22,480 Många IDE-liknande funktioner är inte inbyggd i Vim, 46 00:02:22,480 --> 00:02:26,850 så om du har använt en IDE och du är van vid saker som kompilera och köra automatiskt 47 00:02:26,850 --> 00:02:30,880 eller felsökning av vad som finns i din IDE eller en mängd olika saker 48 00:02:30,880 --> 00:02:32,290 Vim kommer inte med som naturligt, 49 00:02:32,290 --> 00:02:36,330 men det finns en mängd plugins som du kan använda för att lägga den typen av funktionalitet till Vim. 50 00:02:36,330 --> 00:02:40,890 Vim i sig fokuserar på textredigering och gör textredigering riktigt, riktigt bra. 51 00:02:40,890 --> 00:02:43,340 Och slutligen, det är verkligen anpassningsbar och utbyggbar, 52 00:02:43,340 --> 00:02:48,740 och i princip Vim har funnits, eller Vi, som Vim bygger på, 53 00:02:48,740 --> 00:02:53,790 har funnits i över 40 år, och det är en mycket, mycket djup program, 54 00:02:53,790 --> 00:02:58,850 och människor kommer att använda den för en livstid och aldrig riktigt behärska programmet till fullo, 55 00:02:58,850 --> 00:03:01,530 och du kommer alltid att fortsätta att lära under hela livet genom åren, 56 00:03:01,530 --> 00:03:03,390 alltid bli bättre och bättre. 57 00:03:03,390 --> 00:03:07,480 >> Det finns i princip ingen ände på vad du kan lära dig och hur mycket du kan förbättra med Vim, 58 00:03:07,480 --> 00:03:09,300 vilket är riktigt spännande. 59 00:03:09,300 --> 00:03:12,730 Du vill inte se det som något skrämmande eftersom du kan bli väldigt, väldigt duktiga 60 00:03:12,730 --> 00:03:16,650 i Vim på bara några veckor, men det är ungefär som en kontinuerlig- 61 00:03:16,650 --> 00:03:18,870 kan du alltid lära mer och lära sig mer och göra saker bättre och bättre, 62 00:03:18,870 --> 00:03:20,880 vilket är ganska spännande för mig. 63 00:03:20,880 --> 00:03:23,810 Detta är ett exempel på vad Vim ser ut. 64 00:03:23,810 --> 00:03:27,630 Det här är inte min. Du ser några demonstrationer just nu. 65 00:03:27,630 --> 00:03:29,350 Det här är ett exempel på vad Vim kan se ut. 66 00:03:29,350 --> 00:03:33,590 >> Vad vi ska göra i dag är att vi kommer att börja med 67 00:03:33,590 --> 00:03:35,260  en snabb presentation av vad Vim kan göra. 68 00:03:35,260 --> 00:03:39,040 Jag kommer att göra några tricks och allt för er 69 00:03:39,040 --> 00:03:43,020 så att du kan se varför jag gillar Vim så mycket och varför människor som Vim så mycket, 70 00:03:43,020 --> 00:03:46,470 och sedan därifrån går vi in ​​i en mild introduktion. 71 00:03:46,470 --> 00:03:49,530 Faktiskt kommer det att vara lite snabb, en introduktion till Vim. 72 00:03:49,530 --> 00:03:53,410 Jag ber er att ladda ner en textfil och att följa med mig om du kan. 73 00:03:53,410 --> 00:03:58,080 Detta är Vim, och just här jag använder MacVim, 74 00:03:58,080 --> 00:04:00,520 så om ni har Mac-datorer kanske du vill överväga att använda MacVim 75 00:04:00,520 --> 00:04:04,210 eftersom det är en grafisk version av Vim, även om den vanliga Vim, 76 00:04:04,210 --> 00:04:06,210 vad som finns i din kommandorad, fungerar alldeles utmärkt. 77 00:04:06,210 --> 00:04:09,890 Jag ska visa er några slumpmässiga tips och tricks 78 00:04:09,890 --> 00:04:15,330 som du kan använda i Vim visa dig varför det är så coolt. 79 00:04:15,330 --> 00:04:18,940 >> Bara några slumpmässiga saker jag kommer att gå igenom. 80 00:04:18,940 --> 00:04:21,700 Det första är textobjekt, och det finns några kommandon runt textobjekt, 81 00:04:21,700 --> 00:04:25,010 och jag ska verkligen lära dig vad textobjekt är mer i detalj senare i seminariet, 82 00:04:25,010 --> 00:04:30,050 men till exempel, låt oss säga att jag stavade mitt namn fel, 83 00:04:30,050 --> 00:04:32,380 Barndon Liu, och jag vill ändra på det. 84 00:04:32,380 --> 00:04:36,140 Allt jag behöver göra är att få min markören någonstans i mitt namn och skriv in kommandot 85 00:04:36,140 --> 00:04:38,900 CIW, och det kommer att ta bort hela mitt namn, sätta mig i insats-läge, 86 00:04:38,900 --> 00:04:41,050 och jag kan skriva in mitt namn och fixa det. 87 00:04:41,050 --> 00:04:45,550 Likaså om jag vill ändra något inne citat finns också ett kommando för det. 88 00:04:45,550 --> 00:04:47,330 Jag kan ta bort saker inuti citat. 89 00:04:47,330 --> 00:04:50,260 Inget mer att behöva dubbelklicka, flytta handen över till musen, 90 00:04:50,260 --> 00:04:52,230 Dubbelklicka och skriv något igen 91 00:04:52,230 --> 00:05:02,000 Du kan göra allt från tangentbordet, oavsett vad det är. 92 00:05:02,000 --> 00:05:06,430 Eller alternativt, låt oss säga att jag har den här bilden tagg inuti denna ankartaggen. 93 00:05:06,430 --> 00:05:08,160 >> Har ni täckt HTML i klassen än? 94 00:05:08,160 --> 00:05:10,570 Ja, så kanske jag vill ta bort denna tagg, 95 00:05:10,570 --> 00:05:13,080 som normalt vad du behöver göra är att du måste använda musen 96 00:05:13,080 --> 00:05:16,040 och försiktigt lyfta fram exakt vad du vill ta bort och ta bort den. 97 00:05:16,040 --> 00:05:21,320 Men i Vim som är helt enkelt dit, och du kan radera ut det riktigt snabbt, 98 00:05:21,320 --> 00:05:28,020 och jag ska förklara för er vad alla dessa kommandon betyder och hur du använder dem i en sekund. 99 00:05:28,020 --> 00:05:30,320 Ett annat exempel, jag har lite kod här, 100 00:05:30,320 --> 00:05:33,640 och låt oss säga att jag vill dra in koden, men jag vill dra in koden 101 00:05:33,640 --> 00:05:39,940 bara inom parentes, och jag kan också dra in koden med hjälp av 3-kommandon 102 00:05:39,940 --> 00:05:45,360 använder i grunden> iB. 103 00:05:45,360 --> 00:05:49,960 En annan sak som är riktigt coolt om Vim är något som kallas visuell blockera redigering. 104 00:05:49,960 --> 00:05:52,380 Jag vet inte om ni någonsin har velat lyfta fram 105 00:05:52,380 --> 00:05:55,690 ett rektangulärt block av text i koden ibland 106 00:05:55,690 --> 00:06:00,570 istället för att behöva göra detta konstiga sorts linje sak som spänner över alla olika linjer. 107 00:06:00,570 --> 00:06:02,450 Till exempel i Vim kan du göra det. 108 00:06:02,450 --> 00:06:05,260 Jag kan markera rektanglar som detta, vilket är ganska cool, 109 00:06:05,260 --> 00:06:07,950 men dessutom kan jag redigera med hjälp av denna funktion. 110 00:06:07,950 --> 00:06:12,050 Till exempel, om jag vill ge någon form av prefix till alla våra namn 111 00:06:12,050 --> 00:06:18,100 Jag kan markera ett block och sedan lägga till något. 112 00:06:18,100 --> 00:06:22,060 >> På samma sätt kan jag också lyfta fram detta block och väljer att ta bort det, 113 00:06:22,060 --> 00:06:26,300 eller kanske jag ska lyfta fram detta block och ändra den till D för att vi är alla läkare. 114 00:06:26,300 --> 00:06:29,430 Vad det än är, kan du göra alla dessa olika saker. 115 00:06:29,430 --> 00:06:31,270 Slutligen är fällbara riktigt coolt. 116 00:06:31,270 --> 00:06:33,840 Många IDE har här du kan vika olika funktioner utom synhåll 117 00:06:33,840 --> 00:06:35,590 om du inte vill se dem. 118 00:06:35,590 --> 00:06:40,120 Anta till exempel att jag har denna massa text här, och jag vill verkligen inte se den. 119 00:06:40,120 --> 00:06:42,710 Jag vill hålla det utom synhåll eftersom jag redigerar något annat i filen. 120 00:06:42,710 --> 00:06:50,580 Jag kan vika upp den så det är allt kollapsade, 121 00:06:50,580 --> 00:06:52,150 och på det sättet det är utom synhåll, 122 00:06:52,150 --> 00:06:54,310 och jag kan redigera andra saker som är på sidan, och det är riktigt bra. 123 00:06:54,310 --> 00:06:57,550 Du kan vika upp funktioner och allt eller lägga upp klasser när du programmerar 124 00:06:57,550 --> 00:06:59,380 bara för att hålla dem utom synhåll när du inte redigerar dem, 125 00:06:59,380 --> 00:07:04,330 och senare när du vill se dem kan du öppna dem. 126 00:07:04,330 --> 00:07:09,260 Och du kan se det just öppnat upp allt. 127 00:07:09,260 --> 00:07:11,220 Flikar, buffertar, och fönster. 128 00:07:11,220 --> 00:07:13,260 Vim är ganska cool i det 129 00:07:13,260 --> 00:07:16,280 normalt i en hel del textredigerare som du kan bara redigera en fil i taget, 130 00:07:16,280 --> 00:07:18,960 som i Nano, eller kanske om du använder Anteckningar eller Gedit. 131 00:07:18,960 --> 00:07:21,470 Jag har faktiskt aldrig använt Gedit väldigt mycket, men åtminstone i Notepad + + 132 00:07:21,470 --> 00:07:26,700 du kan ha flikar, men Vim har begreppet flikar, buffertar och fönster. 133 00:07:26,700 --> 00:07:28,760 Till exempel kan du öppna upp ett gäng nya flikar. 134 00:07:28,760 --> 00:07:31,790 >> Här kan du se högst upp har jag nu en massa flikar, 135 00:07:31,790 --> 00:07:34,350 och jag kan stänga dem. 136 00:07:34,350 --> 00:07:37,550 Dessutom finns det här begreppet buffertar, 137 00:07:37,550 --> 00:07:40,110 vilket är tanken att när du har öppnat en fil 138 00:07:40,110 --> 00:07:43,910 det stannar vid liv i bufferten, och om du vill navigera till den filen riktigt snabbt 139 00:07:43,910 --> 00:07:46,290 Du kan navigera till det riktigt snabbt inom bufferten också, 140 00:07:46,290 --> 00:07:51,890 och dessutom inom en ruta du kan också dela dina fönster upp i flera fönster. 141 00:07:51,890 --> 00:07:55,890 Till exempel, om jag vill dela detta fönster upp i flera fönster 142 00:07:55,890 --> 00:08:00,080 du kan se här att jag kan ha samma kod två gånger, 143 00:08:00,080 --> 00:08:03,800 och jag kan dela mer och mer och mer, och just nu är det inte ser så bra 144 00:08:03,800 --> 00:08:07,340 eftersom standard Jag har standardfönsterstorleken vara typ av stora 145 00:08:07,340 --> 00:08:09,490 så alla de andra är hoptryckt ut, 146 00:08:09,490 --> 00:08:12,000 men normalt när jag är på min dator och inte på denna projektor 147 00:08:12,000 --> 00:08:15,920 Jag kan ha flera rutor öppna samtidigt, vilket är riktigt trevligt för 148 00:08:15,920 --> 00:08:21,450 redigera flera filer samtidigt. 149 00:08:21,450 --> 00:08:23,800 Du kan också få saker som att välja och byta ut, 150 00:08:23,800 --> 00:08:27,900 och vi kommer faktiskt täcker det i seminariet, 151 00:08:27,900 --> 00:08:29,250 så jag ska hoppa över det för nu. 152 00:08:29,250 --> 00:08:32,039 Du kan också interagera med kommandoraden i alla möjliga olika sätt. 153 00:08:32,039 --> 00:08:36,380 Till exempel, om jag har någon form av lista här, och jag vill att sortera- 154 00:08:36,380 --> 00:08:43,039 Jag vet inte, låt oss lägga till en frukt, druva, 155 00:08:43,039 --> 00:08:45,450 och jag kan lyfta fram detta med hjälp av höjdpunkten funktionen 156 00:08:45,450 --> 00:08:48,980 och ringa sortera, och det kommer att sortera det automatiskt för mig. 157 00:08:48,980 --> 00:08:52,150 >> Likaså om du ska kunna redigera CSS, som jag antar att du förmodligen kommer att göra 158 00:08:52,150 --> 00:08:54,190 för ditt slutprojekt, de flesta människor gör, 159 00:08:54,190 --> 00:09:00,200 och kanske du vill behålla din CSS organiseras genom att sortera dem i alfabetisk ordning. 160 00:09:00,200 --> 00:09:04,410 Du kan också markera dem och ringa sortera, och det kommer att sortera dem för dig. 161 00:09:04,410 --> 00:09:07,380 Dessa är några av de exempel på de saker som Vim kan göra, 162 00:09:07,380 --> 00:09:10,760 och du kommer att märka att den viktigaste sak som jag verkligen vill göra er uppmärksamma på 163 00:09:10,760 --> 00:09:14,740 är att jag gör allt från tangentbordet, 164 00:09:14,740 --> 00:09:18,020 och om du har möjlighet att se var mina händer placeras 165 00:09:18,020 --> 00:09:21,210 du kommer också att se att mina händer egentligen aldrig flytta från hemmet raden. 166 00:09:21,210 --> 00:09:24,790 Normalt när du redigerar text du brukar använda en mus 167 00:09:24,790 --> 00:09:28,030 och klicka runt och allt, och den sortens rörelse drar du ner 168 00:09:28,030 --> 00:09:32,280 och avfall tid, eller kanske du flyttar mellan hemma raden och piltangenterna, 169 00:09:32,280 --> 00:09:35,620 och så att du flyttar fram och tillbaka så där, vilket är lite besvärligt 170 00:09:35,620 --> 00:09:38,750 men även saktar ner dig, och saken är när du får riktigt bra på Vim 171 00:09:38,750 --> 00:09:42,350 allt du vill göra är gjort utan att behöva flytta händerna 172 00:09:42,350 --> 00:09:50,730 från hemmet rad, vilket är bra. 173 00:09:50,730 --> 00:09:54,870 Håll ut, jag ska öppna det här programmet. Så där. 174 00:09:54,870 --> 00:09:58,320 >> Nu kan du se vilka kommandon som kör ner det nedre högra fönstret. 175 00:09:58,320 --> 00:10:03,190 Alla funktioner som jag visade bara att du är saker som ingår som standard med Vim, 176 00:10:03,190 --> 00:10:06,820 men det finns också ett stort antal plugins som du också kan använda 177 00:10:06,820 --> 00:10:08,390 för att förbättra din Vim upplevelse. 178 00:10:08,390 --> 00:10:10,540 Om du har hämtat de konfigurationsfiler som jag ingår, 179 00:10:10,540 --> 00:10:13,150 och det finns anvisningar om hur du installerar dem i PowerPoint 180 00:10:13,150 --> 00:10:17,840 och även i mailet jag skickade ut, jag har ungefär 40 plugins installerade 181 00:10:17,840 --> 00:10:20,490 eller kanske 30 plugins, och varenda en 182 00:10:20,490 --> 00:10:24,000 ger ytterligare funktionalitet till Vim som förbättrar din Vim upplevelse. 183 00:10:24,000 --> 00:10:26,960 Till exempel är en av mina favoriter något som kallas surround.vim, 184 00:10:26,960 --> 00:10:29,760 och det i grund och botten gör att du kan arbeta med närliggande 185 00:10:29,760 --> 00:10:32,200 eller avgränsande tecken mycket lättare. 186 00:10:32,200 --> 00:10:35,960 >> Ett exempel, jag vet inte om ni någonsin kod i LaTeX, 187 00:10:35,960 --> 00:10:38,830 men LaTeX är ett matematiskt sättning språk som används för att göra 188 00:10:38,830 --> 00:10:42,950 riktigt snygg matte, och när du vill ha något att se ut som matematik 189 00:10:42,950 --> 00:10:47,050 du slå in den i dollartecken, och låt oss säga att jag skriver lite ekvation som F = ma, 190 00:10:47,050 --> 00:10:49,240 och jag glömde att packa in den i dollartecken. 191 00:10:49,240 --> 00:10:58,270 Då kan jag lyfta fram detta och slå in den i dollartecken precis som det. 192 00:10:58,270 --> 00:11:03,640 Alternativt låter Vim du ta bort saker inuti taggar 193 00:11:03,640 --> 00:11:07,300 och ta bort taggar och vad inte, men Vim av naturen 194 00:11:07,300 --> 00:11:10,400 inte tillåter dig att ändra taggar, så till exempel, jag har denna div-taggen, 195 00:11:10,400 --> 00:11:13,060 och jag vill uppgradera till HTML5 och använda en ny header tag. 196 00:11:13,060 --> 00:11:22,290 Jag kan göra förändring omgivande taggen och skriv in rubrik, 197 00:11:22,290 --> 00:11:26,540 och det kommer automatiskt att ändra på det för mig. 198 00:11:26,540 --> 00:11:29,620 På samma sätt, låt oss säga att vi har något inom parentes, 199 00:11:29,620 --> 00:11:33,230 och jag ville ändra på det från parentes i parentes eller något liknande. 200 00:11:33,230 --> 00:11:36,520 Jag kan också ändra på det riktigt enkelt genom att skriva in c för förändring, 201 00:11:36,520 --> 00:11:39,330 s för surround, parenteser. 202 00:11:39,330 --> 00:11:42,170 Åh, jag antar att jag måste skriva det snabbare. 203 00:11:42,170 --> 00:11:45,380 Parenteser och hängslen eller konsoler, och det kommer automatiskt att ändra på det för mig, 204 00:11:45,380 --> 00:11:48,570 vilket är riktigt trevligt, annars normalt är det riktigt besvärligt. 205 00:11:48,570 --> 00:11:51,310 >> Det är verkligen trevligt att växla mellan kanske enda anbud 206 00:11:51,310 --> 00:11:53,060 och dubbla citationstecken strängar eller något liknande. 207 00:11:53,060 --> 00:11:56,250 Det är ett exempel användningsfall. 208 00:11:56,250 --> 00:11:58,750 Det finns en plugin som heter Fugitive 209 00:11:58,750 --> 00:12:00,260 som integrerar med Git. 210 00:12:00,260 --> 00:12:03,000 Jag gissar att ni kanske inte har använt Git så mycket i CS50, 211 00:12:03,000 --> 00:12:05,530 men du hittar dig själv med hjälp av Git mer och mer och mer, 212 00:12:05,530 --> 00:12:09,530 inte bara i klasserna hela Harvard men även på jobb och vad inte, 213 00:12:09,530 --> 00:12:12,650 och normalt du måste växla fram och tillbaka mellan 214 00:12:12,650 --> 00:12:15,950 kommandoraden och Vim för att interagera med Git, 215 00:12:15,950 --> 00:12:18,590 men det finns plugins för att integrera med Git inifrån Vim 216 00:12:18,590 --> 00:12:23,020 och även för att ge dig ännu fler funktioner ovanpå Git. 217 00:12:23,020 --> 00:12:25,520 Det finns något som heter NERDTree, som du kan använda för att utforska 218 00:12:25,520 --> 00:12:27,860 filstrukturerna inifrån Vim. 219 00:12:27,860 --> 00:12:31,710 >> Till exempel kan jag öppna NERDTree på den högra rutan, 220 00:12:31,710 --> 00:12:35,100 och du kan i princip se slumpmässiga filer 221 00:12:35,100 --> 00:12:38,720 och öppna inte skatter, inte titta på mina skatter. 222 00:12:38,720 --> 00:12:43,460 Du kan titta på filer och allt och öppna andra filer och så vidare och så vidare. 223 00:12:43,460 --> 00:12:47,610 Och jag tänker inte gå in på alla plugins, så vi kan i princip dyka in 224 00:12:47,610 --> 00:12:51,640 och börja arbeta på Vim, men det finns plugins som gör att du kan 225 00:12:51,640 --> 00:12:55,420 comment lättare, plugins som gör att du kan hoppa in mellan filer lättare, 226 00:12:55,420 --> 00:12:57,820 plugins som ger dig syntax kontroll inifrån Vim, 227 00:12:57,820 --> 00:13:00,210 vilket är riktigt coolt, och det ger dig syntax kontroll 228 00:13:00,210 --> 00:13:03,710 för de flesta språk direkt ur lådan, 229 00:13:03,710 --> 00:13:07,460 saker som regnbåge parenteser, vilket är faktiskt riktigt, riktigt coolt. 230 00:13:07,460 --> 00:13:09,110 Låt mig ge er ett exempel på det just nu. 231 00:13:09,110 --> 00:13:11,150 >> Låt oss se. 232 00:13:11,150 --> 00:13:15,460 Här är några random kod som jag skrev, 233 00:13:15,460 --> 00:13:19,720 och du kommer att märka att fästena och parenteser alla är färgade, 234 00:13:19,720 --> 00:13:26,120 och parenteser och konsoler av samma färg som matchar, vilket är trevligt 235 00:13:26,120 --> 00:13:29,380 och ibland förbättrar läsbarheten av koden. 236 00:13:29,380 --> 00:13:32,030 Du har också automatisk komplettering, tabellformatering. 237 00:13:32,030 --> 00:13:37,240 När du har något som du vill få alla kommentarer att rada upp 238 00:13:37,240 --> 00:13:40,820 eller om du vill göra en tabell i din text och du vill 239 00:13:40,820 --> 00:13:43,870 få allt att se ut som en trevlig tabell, istället för att behöva formatera det manuellt 240 00:13:43,870 --> 00:13:46,830 det finns plugins som kommer att formatera det för dig och så vidare och så vidare. 241 00:13:46,830 --> 00:13:49,400 Listan kan göras lång och på. 242 00:13:49,400 --> 00:13:53,890 Jag skulle kunna tillbringa timmar med att utforska alla de olika Vim plugins som finns, 243 00:13:53,890 --> 00:13:59,780 och det är otroligt vad som finns därute. 244 00:13:59,780 --> 00:14:05,880 >> Några frågor hittills? Söt. 245 00:14:05,880 --> 00:14:10,180 I så fall kommer vi att börja spela runt med Vim, 246 00:14:10,180 --> 00:14:12,620 och jag vill att ni ska arbeta med några Vim med mig 247 00:14:12,620 --> 00:14:17,650 så att du kan få en känsla för det, och jag kan vägleda dig i dina första steg som arbetar med Vim 248 00:14:17,650 --> 00:14:20,590 eftersom många människor blir överväldigad när de öppnar Vim upp, 249 00:14:20,590 --> 00:14:24,730 och ibland om du inte ens vet kommandot för att avsluta du kan inte ens få ut av Vim, 250 00:14:24,730 --> 00:14:26,350 men det är inte så illa. 251 00:14:26,350 --> 00:14:28,820 Du behöver bara ett par minuter av vägledning från någon som har använt Vim före 252 00:14:28,820 --> 00:14:32,220 eller att läsa några tutorials på nätet, och du kommer att vara på väg på nolltid. 253 00:14:32,220 --> 00:14:34,570 Här är några instruktioner för att installera Vim om du inte redan har. 254 00:14:34,570 --> 00:14:39,130 Du kan titta på dessa bilder efter presentationen om du vill installera fler saker. 255 00:14:39,130 --> 00:14:42,660 >> Även dessa är några instruktioner för att installera mina konfigurationsfiler, 256 00:14:42,660 --> 00:14:48,230 och du kan även följa dessa instruktioner senare om du inte redan har. 257 00:14:48,230 --> 00:14:52,390 Om ni skulle kunna gå till denna länk och ladda ner en textfil. 258 00:14:52,390 --> 00:14:56,640 Länken tar dig till denna textfil, som jag skulle vilja att ni ladda ner och öppna upp i Vim, 259 00:14:56,640 --> 00:15:01,580 och det finns en massa övningar och allt i det att du kan följa runt med mig 260 00:15:01,580 --> 00:15:09,160 och börjar få lite övning med några av de grundläggande funktionerna i Vim. 261 00:15:09,160 --> 00:15:12,740 Bra. 262 00:15:12,740 --> 00:15:18,430 Även om du öppnar upp det jag ska ge en kort introduktion till två riktigt viktiga principer 263 00:15:18,430 --> 00:15:23,080 i Vim redigering som är verkligen viktigt att förstå innan du dyker in i Vim, 264 00:15:23,080 --> 00:15:25,720 och det är modal redigering och operatörer och rörelser. 265 00:15:25,720 --> 00:15:28,600 Jag ska omfatta trafik redigering först, och sedan kommer vi att täcka operatörer och motioner 266 00:15:28,600 --> 00:15:30,980 i en liten bit. 267 00:15:30,980 --> 00:15:36,910 >> Den första nyckeln distinktionen mellan Vim och ganska mycket alla andra 268 00:15:36,910 --> 00:15:39,870 textredigerare av någon sort är att Vim är en modal redaktör, 269 00:15:39,870 --> 00:15:42,260 och vad det betyder är när du använder Vim 270 00:15:42,260 --> 00:15:44,120 du kan vara i en av många olika lägen. 271 00:15:44,120 --> 00:15:46,590 Det finns normalt läge, finns det insatsläge, det är visuellt läge, 272 00:15:46,590 --> 00:15:50,790 så vidare och så vidare, och saken är, dina tangenttryckningar ta på olika åtgärder, 273 00:15:50,790 --> 00:15:54,160 ta på olika betydelse, beroende på vilket läge du befinner dig i. 274 00:15:54,160 --> 00:15:58,110 Bara som ett exempel, är normalläge det läge du befinner dig i när du flyttar runt, 275 00:15:58,110 --> 00:16:01,820 och så skulle jag använda nyckeln J för att flytta nedåt, 276 00:16:01,820 --> 00:16:05,430 men i insatsläge, använder du nyckeln J att faktiskt skriva ut J på skärmen, 277 00:16:05,430 --> 00:16:08,230 och det är därför många människor blir förvirrade eftersom de inte är vana vid 278 00:16:08,230 --> 00:16:11,630 vara i olika lägen hela tiden, och så de kommer att skriva ut saker, 279 00:16:11,630 --> 00:16:14,490 och du är van vid att ha vad du skriver på skärmen, 280 00:16:14,490 --> 00:16:18,370 men i Vim kanske markören rör sig överallt 281 00:16:18,370 --> 00:16:21,020 eftersom du skriver konstiga tecken, och plötsligt får du 282 00:16:21,020 --> 00:16:24,710 skiftade i insert läge, eftersom du skrev några viktiga 283 00:16:24,710 --> 00:16:27,150 som placerar dig i insert mode, och sedan text börjar flyga ut, 284 00:16:27,150 --> 00:16:29,940 så att folk blir förvirrade på grund av detta. 285 00:16:29,940 --> 00:16:32,960 Men du måste hålla reda på vilket läge du är i, 286 00:16:32,960 --> 00:16:35,260 och om du tittar längst ner verktygsfältet i Vim 287 00:16:35,260 --> 00:16:37,410 bör det finnas en indikator som talar om vilket läge du är närvarande i, 288 00:16:37,410 --> 00:16:39,350 vilket bör vara till hjälp. 289 00:16:39,350 --> 00:16:42,650 >> Men i allmänhet, de 3 huvudlägen som du bör känna till, 290 00:16:42,650 --> 00:16:46,440 det finns bara förmodligen 6 eller 7 eller 8 lägen eller så, 291 00:16:46,440 --> 00:16:49,180 men du merparten av din tid på 3. 292 00:16:49,180 --> 00:16:52,150 Det första är normalläge. Det är där du tillbringar merparten av din tid. 293 00:16:52,150 --> 00:16:55,620 Alla tangenttryckningar loggas som någon sorts kommando, 294 00:16:55,620 --> 00:16:58,870 och vi kommer att lära sig en hel del av dessa kommandon under hela dagen idag. 295 00:16:58,870 --> 00:17:03,160 Det andra läget är insert mode, vilket är där du faktiskt skriver ut saker, 296 00:17:03,160 --> 00:17:06,410 och infoga läge är i grunden det läge du är vanligtvis används för att. 297 00:17:06,410 --> 00:17:08,650 Du skriver något, och det bara kommer på skärmen, 298 00:17:08,650 --> 00:17:11,800 och visuellt läge är något där du kan göra markering. 299 00:17:11,800 --> 00:17:14,750 Du såg tidigare där ibland jag skulle lyfta fram text 300 00:17:14,750 --> 00:17:21,900 och manipulera den på olika sätt, och det är ett exempel med hjälp av visuellt läge. 301 00:17:21,900 --> 00:17:27,819 >> Vi ska börja med de absoluta grunderna du behöver för att överleva i Vim, 302 00:17:27,819 --> 00:17:30,610 och det är i princip dessa 7 kommandon här. 303 00:17:30,610 --> 00:17:34,250 HJKL används för att navigera runt i filen, 304 00:17:34,250 --> 00:17:37,140 och de motsvarar vänster, ner, upp, och rätt, 305 00:17:37,140 --> 00:17:39,460 och du är fri att använda piltangenterna också, 306 00:17:39,460 --> 00:17:43,110 men vi verkligen uppmuntra dig att använda HJKL så mycket som möjligt 307 00:17:43,110 --> 00:17:46,690 eftersom tanken är att när du redigerar kan du flytta runt i dokumentet 308 00:17:46,690 --> 00:17:49,350 utan att behöva växla mellan piltangenterna 309 00:17:49,350 --> 00:17:52,210 och där du skriver, vilket är riktigt, riktigt nice. 310 00:17:52,210 --> 00:17:54,390 Du vill bara flytta några tecken över. 311 00:17:54,390 --> 00:17:58,020 Du behöver inte flytta hela handen över, och det är ganska trevligt att ha det. 312 00:17:58,020 --> 00:18:01,920 Vissa Vim experter faktiskt kartlägga sina piltangenterna för att andra funktioner 313 00:18:01,920 --> 00:18:06,880 eftersom de redan har HJKL, och de kan använda sina piltangenterna för andra funktioner också. 314 00:18:06,880 --> 00:18:09,080 HJKL flyttar dig runt när du är i normalläge. 315 00:18:09,080 --> 00:18:11,650 Om du vill gå in i insert mode och skriver något 316 00:18:11,650 --> 00:18:15,370 du kan trycka på i för insättningsläge, och som placerar dig i insert mode, 317 00:18:15,370 --> 00:18:17,820 och du kan skriva något, och du skriver fly 318 00:18:17,820 --> 00:18:20,270 att ta sig från insättningsläget tillbaka till normalläge. 319 00:18:20,270 --> 00:18:23,280 Escape alltid skickar dig tillbaka till normalläge 320 00:18:23,280 --> 00:18:26,740 oavsett vilket läge du befinner dig i, och om du vill lämna 321 00:18:26,740 --> 00:18:29,760 Du kan skriva in: wq komma in, 322 00:18:29,760 --> 00:18:32,640 och hur du kan komma ihåg detta är w står för skrivning, 323 00:18:32,640 --> 00:18:34,960 och q står för sluta, så: wq, 324 00:18:34,960 --> 00:18:39,680 och kolon kör kommandot, och så: wq enter för att köra kommandot 325 00:18:39,680 --> 00:18:41,840 sparar och utgångar. 326 00:18:41,840 --> 00:18:46,700 >> Om du öppnar filen upp går vi igenom den första övningen tillsammans. 327 00:18:46,700 --> 00:18:49,450 Steg 1 är att överleva i Vim, 328 00:18:49,450 --> 00:18:53,490 och förhoppningsvis ni alla har det öppet. 329 00:18:53,490 --> 00:18:58,460 Bra, och vi har några enkla övningar för dig att vänja sig vid att använda dessa knappar. 330 00:18:58,460 --> 00:19:03,000 HJKL verkligen inte verkar intuitivt i början, 331 00:19:03,000 --> 00:19:08,710 och detta är en av de första blocken som människor har när du använder Vim 332 00:19:08,710 --> 00:19:10,820 är med hjälp av dessa knappar för att navigera runt. 333 00:19:10,820 --> 00:19:13,650 Det är inte intuitivt, men när man vänjer sig 334 00:19:13,650 --> 00:19:19,590 det verkligen integreras i ditt sinne, och många människor befinner sig ofta 335 00:19:19,590 --> 00:19:23,550 med hjälp av J och K i Word eller även i Chrome, 336 00:19:23,550 --> 00:19:26,530 och faktiskt människor har skapat denna Chrome plugin som heter Vimium 337 00:19:26,530 --> 00:19:29,220 som du kan använda i Chrome eller Chromium för att navigera genom Chrome 338 00:19:29,220 --> 00:19:31,380 använda tangentbordet med hjälp av Vim-liknande genvägar, 339 00:19:31,380 --> 00:19:35,050 så att folk är mycket entusiastiska över det, men gå vidare och försöka använda 340 00:19:35,050 --> 00:19:41,720 HJKL att navigera mellan siffrorna bara så kan du bekanta dig 341 00:19:41,720 --> 00:19:45,660 med hur dessa saker fungerar. 342 00:19:45,660 --> 00:19:50,440 >> När du är klar med det, kan du också gå och leka med den här labyrinten jag skapat 343 00:19:50,440 --> 00:19:53,580 bara för skojs skull, och du kan slags följa den streckade linjen 344 00:19:53,580 --> 00:19:59,060 och försöka att inte krascha in i väggarna 345 00:19:59,060 --> 00:20:07,860 och försöka göra det till slutet av labyrinten. 346 00:20:07,860 --> 00:20:11,840 Om du använder kortkommandon i Gmail eller valfritt antal olika applikationer 347 00:20:11,840 --> 00:20:15,130 du kommer att upptäcka att J och K, till exempel, används ofta för att flytta upp och ner, 348 00:20:15,130 --> 00:20:19,930 och som i grunden kommer från Vim i huvudsak, så du har J och K, 349 00:20:19,930 --> 00:20:22,690 och det är verkligen trevligt eftersom du kan gå upp och ner utan att behöva 350 00:20:22,690 --> 00:20:26,210 rör handen fram och tillbaka från piltangenterna. 351 00:20:26,210 --> 00:20:29,410 Nu ska vi försöka gå in i införingsläge och få ut ur insättningsläge. 352 00:20:29,410 --> 00:20:34,370 Du kommer att märka att just nu är min markören är en stor, svart låda, 353 00:20:34,370 --> 00:20:37,300 och när du går in i insättningsläge ska du finna att 354 00:20:37,300 --> 00:20:39,670 den förvandlas till en smal markör som du är van vid. 355 00:20:39,670 --> 00:20:43,730 Om du använder Vim i terminalen som du kanske inte tycker att detta är fallet 356 00:20:43,730 --> 00:20:46,970 eftersom terminalen inte stödjer denna typ av tunna markör, 357 00:20:46,970 --> 00:20:49,890 men om du använder MacVim eller gvim på Windows 358 00:20:49,890 --> 00:20:54,590 så ska du finna att den förvandlas till en markör, och det är en riktigt snabb visuell indikator. 359 00:20:54,590 --> 00:20:58,270 Det är för dig att se om du är i normalläge eller insättningsläge. 360 00:20:58,270 --> 00:21:02,890 >> Låt oss gå vidare och prova att redigera denna linje. 361 00:21:02,890 --> 00:21:06,220 Fyll den med ditt egna uppgifter eller vad det är, 362 00:21:06,220 --> 00:21:11,750 och hur du kan göra det är att du kan flytta fram till slutet av den tomma, 363 00:21:11,750 --> 00:21:16,040 skriver jag för att komma in i införingsläge, och du kan backa 364 00:21:16,040 --> 00:21:21,100 och skriv in ditt namn, och när du är klar att skriva 365 00:21:21,100 --> 00:21:26,520 du kan trycka på flykt för att komma ur ingsläge, 366 00:21:26,520 --> 00:21:35,930 och du kan flytta hit, typ insats för att ta bort det, 367 00:21:35,930 --> 00:21:42,700 typ fly för att komma ur ingsläge, och du kan skriva: w anger 368 00:21:42,700 --> 00:21:44,720 för att spara filen. 369 00:21:44,720 --> 00:21:47,420 Du kan skriva in bara: w för att spara filen. 370 00:21:47,420 --> 00:21:50,560 Du kan skriva in bara: q för att avsluta utan att spara, 371 00:21:50,560 --> 00:21:53,750 eller så kan du skriva in: wq för att spara och avsluta. 372 00:21:53,750 --> 00:21:58,850 Visst, vill vi inte att sluta ändå, så du kan skriva in: w. 373 00:21:58,850 --> 00:22:01,780 Och kanske det verkade lite ineffektiva vid första 374 00:22:01,780 --> 00:22:05,600 därför att flytta till den platsen du var tvungen att skriva J en massa gånger, 375 00:22:05,600 --> 00:22:08,670 kanske L en massa gånger för att komma till den platsen, 376 00:22:08,670 --> 00:22:11,260 och du måste trycka på backsteg en massa gånger, och det verkade riktigt ineffektivt 377 00:22:11,260 --> 00:22:13,260 medan normalt skulle du förmodligen flytta musen över det, 378 00:22:13,260 --> 00:22:15,880 dubbelklicka och börja skriva, och naturligtvis, 379 00:22:15,880 --> 00:22:19,190 saken är den, när du börjar med Vim och du bara känner till dessa grundläggande kommandon, 380 00:22:19,190 --> 00:22:22,810 ja, det blir lite långsammare, men snart kommer du lära dig några mer kraftfulla kommandon, 381 00:22:22,810 --> 00:22:26,380 vilket gör att du kan flytta över dokument mycket snabbare, 382 00:22:26,380 --> 00:22:29,410 och du kommer inte att ha denna mycket besvärliga användning av 383 00:22:29,410 --> 00:22:34,330 upprepa Js och upprepa Ks och Ls och så vidare och så vidare. 384 00:22:34,330 --> 00:22:41,340 >> Några frågor hittills? Solid. 385 00:22:41,340 --> 00:22:44,000 Tillbaka till PowerPoint. 386 00:22:44,000 --> 00:22:49,140 Nu ska vi presentera några fler kommandon för avancerade rörelser. 387 00:22:49,140 --> 00:22:52,680 Du upplevde att behöva skriva kanske L mycket eller H mycket, 388 00:22:52,680 --> 00:22:57,200 och här är några fler kommandon som du kan använda för att röra sig snabbare. 389 00:22:57,200 --> 00:23:02,990 Antag att markören är på O över på några i "Det här är en text," 390 00:23:02,990 --> 00:23:06,840 och här är 5 fler kommandon som du kan använda för att gå över linjen lättare. 391 00:23:06,840 --> 00:23:09,820 Så ^ och $ flytta dig till början och slutet linje, 392 00:23:09,820 --> 00:23:14,300 och någon gång när du lär reguljära uttryck eller andra saker 393 00:23:14,300 --> 00:23:17,390 ser du att dessa slags avtal är mycket vanliga. 394 00:23:17,390 --> 00:23:19,360 Den ^ i allmänhet hänvisar till början av raden. 395 00:23:19,360 --> 00:23:21,090 Den $ hänvisar ofta till slutet av raden. 396 00:23:21,090 --> 00:23:24,130 Dessa är mycket lätt att komma ihåg, och på samma sätt, b, e, och w, 397 00:23:24,130 --> 00:23:28,340 de är lätta att komma ihåg och eftersom B motsvarar att backa eller början, 398 00:23:28,340 --> 00:23:30,630 e motsvarar utgången, vilket är slutet av ordet, 399 00:23:30,630 --> 00:23:35,530 och w motsvarar nästa ord, så w för ord. 400 00:23:35,530 --> 00:23:37,750 Och om du fortsätter att skriva e eller behålla skriva w 401 00:23:37,750 --> 00:23:43,520 du märker att du kan hoppa mellan ord, och det är mycket snabbare än att bara skriva l.. 402 00:23:43,520 --> 00:23:46,600 >> Nu är nästa sak Operator-Motion modell. 403 00:23:46,600 --> 00:23:50,310 Detta är faktiskt en av de viktigaste anledningarna till Vim kan vara så kraftfull, 404 00:23:50,310 --> 00:23:54,890 och det beror på att du kan i princip komponera olika element 405 00:23:54,890 --> 00:23:58,250 till mer kraftfulla funktioner, så generellt 406 00:23:58,250 --> 00:24:01,000 när du gör något i Vim du kan se det som 407 00:24:01,000 --> 00:24:03,280 kombinera en operatör med en rörelse. 408 00:24:03,280 --> 00:24:07,310 Hittills har vi bara behandlat motioner, som HJKL. 409 00:24:07,310 --> 00:24:10,770 De flyttar dig runt, och sedan b och w, de också flytta dig runt olika sätt, 410 00:24:10,770 --> 00:24:14,600 men vi har inte gått ännu till att kunna ta bort saker eller ändra saker eller whatnot, 411 00:24:14,600 --> 00:24:19,320 och när du kombinerar operatörer med rörelser då du kan ha 412 00:24:19,320 --> 00:24:22,510 mycket mer kraftfulla effekter, så till exempel, 413 00:24:22,510 --> 00:24:26,360 om jag ville ta bort två ord, kan jag använda d för radering operatören, 414 00:24:26,360 --> 00:24:29,420 och jag kan lägga till en 2 för att visa att jag vill ta bort två ord, 415 00:24:29,420 --> 00:24:31,130 och då jag har en rörelse. 416 00:24:31,130 --> 00:24:33,490 Jag skulle kunna omfatta w att säga ta bort 2 ord. 417 00:24:33,490 --> 00:24:37,740 Jag skulle kunna använda något som J säga radera nedåt två gånger 418 00:24:37,740 --> 00:24:39,880 och ta bort 2 rader under mig. 419 00:24:39,880 --> 00:24:43,870 Jag skulle kunna säga D2B radera bakåt två gånger, 420 00:24:43,870 --> 00:24:46,450 och det finns ännu fler rörelser än de som jag har visat här 421 00:24:46,450 --> 00:24:52,120 att verkligen, verkligen göra ditt Vim redigering mycket mer kraftfull. 422 00:24:52,120 --> 00:24:55,450 >> Dessa är några av de mest populära och de vanligaste operatörerna 423 00:24:55,450 --> 00:24:57,030 och är ganska lätt att komma ihåg också. 424 00:24:57,030 --> 00:24:59,040 D för radering, c. för förändring. 425 00:24:59,040 --> 00:25:01,560 C är i princip exakt samma sak som förändring, förutom att 426 00:25:01,560 --> 00:25:05,990 när du använder c du automatiskt får tas i insatsläge efteråt. 427 00:25:05,990 --> 00:25:08,050 Normalt när du använder rader du använder den från normalläge, 428 00:25:08,050 --> 00:25:10,950 och efter att du tar bort något som du bor i normalt läge. 429 00:25:10,950 --> 00:25:13,380 Men om du vill ändra något kan du använda c 430 00:25:13,380 --> 00:25:15,960 att ta bort något och sedan omedelbart gå in i insättningsläge 431 00:25:15,960 --> 00:25:17,740 så att du kan börja skriva och fixa något. 432 00:25:17,740 --> 00:25:21,160 Y är för YanKing. 433 00:25:21,160 --> 00:25:25,130 Det är i grunden Vim idé om kopiering. 434 00:25:25,130 --> 00:25:29,220 Till exempel, om jag vill kopiera de kommande 2 ord jag kan göra y2w eller något liknande, 435 00:25:29,220 --> 00:25:32,120 och v är att lyfta fram, i huvudsak. 436 00:25:32,120 --> 00:25:35,550 Och även vad som verkligen är coolt är om du skriver en operatör två gånger 437 00:25:35,550 --> 00:25:38,890 det kommer att fungera på en hel rad, så om jag vill ta bort en hel rad 438 00:25:38,890 --> 00:25:41,060 Jag kan skriva dd att ta bort hela raden, 439 00:25:41,060 --> 00:25:47,370 eller om jag vill kopiera hela raden jag kan använda yy eller något liknande. 440 00:25:47,370 --> 00:25:51,600 >> Låt oss prova det här lite mer. 441 00:25:51,600 --> 00:25:56,280 Det finns en övning här för en avancerad rörelse operatör samt 442 00:25:56,280 --> 00:25:59,230 och även en del andra saker som jag inte kommer att täcka i PowerPoint idag, 443 00:25:59,230 --> 00:26:02,250 men du kan känna dig fri att se över dem senare och leka med dem 444 00:26:02,250 --> 00:26:05,990 och bekanta dig med dem. 445 00:26:05,990 --> 00:26:07,630 Operatörer och rörelser. 446 00:26:07,630 --> 00:26:14,220 Anta till exempel att det finns dessa två ord du bara vill ta bort i meningen. 447 00:26:14,220 --> 00:26:17,110 Vad du vill göra är att du vill vara säker på att din 448 00:26:17,110 --> 00:26:21,000 markören är i början av det första ordet som du vill ta bort, 449 00:26:21,000 --> 00:26:26,230 och du kan skriva in d2w, och det kommer att ta bort de två ord för dig. 450 00:26:26,230 --> 00:26:33,140 Och med hjälp av denna exakt kommando, d2w, kan verka lite besvärligt 451 00:26:33,140 --> 00:26:35,940 och meningslöst, men det är tänkt att uttrycka idén 452 00:26:35,940 --> 00:26:39,380 att du kan komponera dessa olika saker, och även i fall 453 00:26:39,380 --> 00:26:42,730 du råkar vara i situationen, då kan du sluta med dw eller d2w, 454 00:26:42,730 --> 00:26:45,600 som jag använder ibland. 455 00:26:45,600 --> 00:26:50,030 Dd och cc jag använder mycket oftare eftersom du kan handla på hela linjer. 456 00:26:50,030 --> 00:26:52,000 >> Till exempel, låt oss säga att jag har den här slumpmässiga lista här, 457 00:26:52,000 --> 00:26:59,030 och kanske jag vill ta bort den rad som säger Huskies eftersom det inte passar, bara för att, 458 00:26:59,030 --> 00:27:01,200 och jag vill inte att det ska gå in i insättningsläge efteråt. 459 00:27:01,200 --> 00:27:03,530 Jag vill ta bort det, i vilket fall kan jag skriva dd, 460 00:27:03,530 --> 00:27:07,090 och det kommer att ta bort hela raden. 461 00:27:07,090 --> 00:27:11,680 Men låt oss säga att nu finns det annan linje som jag vill ta bort, 462 00:27:11,680 --> 00:27:16,850 men jag vill också att fixa det och skriva om det, i vilket fall jag ska prova något liknande cc, 463 00:27:16,850 --> 00:27:19,550 och som tar bort hela raden, men sätter mig i insättningsläge, som ni kan se, 464 00:27:19,550 --> 00:27:24,970 och jag kan fixa det därifrån. 465 00:27:24,970 --> 00:27:28,510 Och det finns många, många olika sätt som du kan kombinera operatörer och motioner, 466 00:27:28,510 --> 00:27:31,360 och när du använder Vim mer och mer du lär dig mer om olika sätt 467 00:27:31,360 --> 00:27:36,300 du kan använda dessa kommandon, och du kommer att bli bättre och bättre. 468 00:27:36,300 --> 00:27:40,180 Awesome, nu här är några andra diverse kommandon 469 00:27:40,180 --> 00:27:44,700 som också är mycket, mycket vanligt förekommande och även hjälper dig att bli bättre på Vim. 470 00:27:44,700 --> 00:27:48,780 >> Till exempel, vi pratade om gemener v för visuell markering. 471 00:27:48,780 --> 00:27:51,530 Vi kan också använda versaler V för visuell linjemarkering. 472 00:27:51,530 --> 00:27:55,880 Så att du kan markera hela rader åt gången mycket lättare. 473 00:27:55,880 --> 00:27:59,180 Du kan använda o när du är i normalläge för att i grunden sätta in en ny rad 474 00:27:59,180 --> 00:28:03,620 under linjen du är här och lägg den i insättningsläget för att börja skriva. 475 00:28:03,620 --> 00:28:07,270 Du kan använda gemener x för att ta bort tecknet som är närvarande under din markör. 476 00:28:07,270 --> 00:28:10,230 Du kan också använda u att ångra, som är typ av trevligt, 477 00:28:10,230 --> 00:28:14,180 och du kan använda kapitalet A som ska läggas till i slutet av den aktuella raden, 478 00:28:14,180 --> 00:28:18,310 så kanske du har markören någonstans på raden, och du vill lägga till i slutet av raden. 479 00:28:18,310 --> 00:28:21,150 Sedan kan du skriva kapital A att omedelbart hoppa till slutet av raden 480 00:28:21,150 --> 00:28:25,140 och gå in i införingsläge så att du kan lägga till i slutet av raden. 481 00:28:25,140 --> 00:28:30,840 >> Jag tror att jag har några fler övningar för det som vi kan prova. 482 00:28:30,840 --> 00:28:33,240 Faktiskt, nej, det gör jag inte. Inte för dem. 483 00:28:33,240 --> 00:28:35,810 Men vi har några fler övningar för nästa avsnitt där vi får se. 484 00:28:35,810 --> 00:28:38,420 Men dessa kan du testa dig själv också. 485 00:28:38,420 --> 00:28:45,610 Till exempel, om du skriver i vanlig v får du regelbunden markering som du är van att gilla detta. 486 00:28:45,610 --> 00:28:49,800 Om du skriver in kapital V, kan du få full linje som markerar så där, 487 00:28:49,800 --> 00:28:55,850 eller om jag skriver in o det i princip kommer att öppna en ny linje för mig, vilket är ganska trevligt. 488 00:28:55,850 --> 00:28:58,850 X jag kan använda för att ta bort tecken på markören. 489 00:28:58,850 --> 00:29:00,800 Jag kan trycka på x en massa gånger och ta bort saker. 490 00:29:00,800 --> 00:29:06,720 Jag kan trycka på u för att ångra allt det. 491 00:29:06,720 --> 00:29:09,600 A, kan jag skriva in A för att omedelbart gå till slutet av raden, 492 00:29:09,600 --> 00:29:14,040 och jag ingår också några andra trevliga tangenter 493 00:29:14,040 --> 00:29:19,240 att du också kan titta på efter presentationen att lära sig några andra kommandon. 494 00:29:19,240 --> 00:29:21,250 >> [Student] Vad är ersättning om? 495 00:29:21,250 --> 00:29:23,050 [Brandon L.] Byte är också riktigt cool 496 00:29:23,050 --> 00:29:26,240 och i grund och botten om du går någonstans- 497 00:29:26,240 --> 00:29:30,060 har du någonsin-folk egentligen inte använda den så mycket längre i dessa dagar, 498 00:29:30,060 --> 00:29:34,340 men har ni någonsin sett i Microsoft Word om du skriver insats 499 00:29:34,340 --> 00:29:37,840 du plötsligt gå in i denna konstiga läge där varje tecken som du skriver 500 00:29:37,840 --> 00:29:39,570 princip ersätter nästa tecken? 501 00:29:39,570 --> 00:29:41,020 Jag vet inte om ni någonsin har sett det. 502 00:29:41,020 --> 00:29:43,250 Detta liknar det. 503 00:29:43,250 --> 00:29:47,150 Till exempel, om jag vill skriva över det jag idag har av någon anledning 504 00:29:47,150 --> 00:29:51,300 Jag kan skriva i kapital R, och jag ska nu vara i byta läge, som ni kan se i det nedre vänstra. 505 00:29:51,300 --> 00:29:58,380 Om jag skriver grejer det skriver saker, och jag kan också backsteg, vilket är ganska häftigt, 506 00:29:58,380 --> 00:30:00,140 och jag kan ångra det. 507 00:30:00,140 --> 00:30:06,980 Jag använder inte det så ofta, men då och då blir det praktiskt. 508 00:30:06,980 --> 00:30:14,150 >> Låt oss tala om textobjekt, som är en av mina favorit saker om Vim, ärligt. 509 00:30:14,150 --> 00:30:19,660 Textobjekt är i grunden denna föreställning om att definiera någon form av bit av text 510 00:30:19,660 --> 00:30:26,550 inuti din textfil, och jag ska gå över dessa tangenter först, 511 00:30:26,550 --> 00:30:29,860 och sedan ska jag ge dig några demonstrationer för dig att bättre förstå vad det betyder. 512 00:30:29,860 --> 00:30:34,650 W hänvisar till ett ord, som ett textobjekt som ett ord, 513 00:30:34,650 --> 00:30:36,480 så några ord som du normalt vet det, 514 00:30:36,480 --> 00:30:39,300 och om det finns skiljetecken som är bredvid ordet 515 00:30:39,300 --> 00:30:43,490 då det inte kommer att inkludera skiljetecken i allmänhet. 516 00:30:43,490 --> 00:30:46,440 Men till exempel, om du vill inkludera skiljetecken av någon anledning 517 00:30:46,440 --> 00:30:49,080 eller du gör något som inte är engelska och du vill inkludera 518 00:30:49,080 --> 00:30:51,180 alla tecken som är avgränsade med blank 519 00:30:51,180 --> 00:30:55,390 Du kan också använda kapital W för att få allt som omges av mellanslag. 520 00:30:55,390 --> 00:30:58,510 Du kan även använda parenteser för att hänvisa till ett textobjekt 521 00:30:58,510 --> 00:31:00,170 det är inne i en uppsättning av parenteser. 522 00:31:00,170 --> 00:31:03,950 Du kan göra samma sak med hakparenteser, vinkelfästen, 523 00:31:03,950 --> 00:31:06,450 hängslen och offerter samt, slutligen, 524 00:31:06,450 --> 00:31:10,970 Du kan också använda t för att hänvisa till en viss tagg. 525 00:31:10,970 --> 00:31:15,390 >> Låt mig visa dig hur det faktiskt spelar ut. 526 00:31:15,390 --> 00:31:21,380 Till exempel är det här mitt första exempel i min monter. 527 00:31:21,380 --> 00:31:26,950 Det finns vissa ord i denna mening som jag vill ändra, 528 00:31:26,950 --> 00:31:30,560 och vi pratade om W används som en rörelse, 529 00:31:30,560 --> 00:31:33,170 men du kan även använda den som ett textobjekt som så. 530 00:31:33,170 --> 00:31:40,940 Till exempel, ett sätt jag kunde ändra Barack namn eller i grunden förändra det 531 00:31:40,940 --> 00:31:46,730 är jag kunde gå till början av detta ord och skriv in c för förändring och w för ord, 532 00:31:46,730 --> 00:31:51,650 och det kommer att ta bort hela ordet och lägg den i insättningsläge. 533 00:31:51,650 --> 00:31:54,240 Men det är mycket irriterande för mig att gå till början av ordet hela tiden. 534 00:31:54,240 --> 00:31:56,530 Det är riktigt irriterande. Jag vill inte behöva göra det. 535 00:31:56,530 --> 00:32:00,390 Jag kan faktiskt vara var som helst i hans namn 536 00:32:00,390 --> 00:32:03,930 och skriv in CIW, och det jag står för inre, 537 00:32:03,930 --> 00:32:06,590 så om jag skriver in CIW det står för förändring i ett ord, 538 00:32:06,590 --> 00:32:10,150 eller med andra ord, ändra ordet jag är för närvarande inne, 539 00:32:10,150 --> 00:32:13,280 och det kommer att ge dig exakt samma effekt. 540 00:32:13,280 --> 00:32:17,130 Du kan fixa det. 541 00:32:17,130 --> 00:32:21,390 >> På samma sätt kanske jag har en del fall som detta 542 00:32:21,390 --> 00:32:27,920 där av någon anledning finns det några avgränsare eller något liknande, 543 00:32:27,920 --> 00:32:31,700 eller det finns någon interpunktion, och jag ville ta bort det hela. 544 00:32:31,700 --> 00:32:36,530 Om jag skriver i CIW det kommer att ta bort vad som finns inuti dessa avgränsare, 545 00:32:36,530 --> 00:32:39,830 men jag vill få det hela som är omgiven av mellanslag, 546 00:32:39,830 --> 00:32:42,750 så jag kan använda guiden för att ta bort det hela. 547 00:32:42,750 --> 00:32:51,000 Jag ska skriva i fem, gör samma sak, och skriv in sex. 548 00:32:51,000 --> 00:32:53,670 Likaså om jag vill ändra något som är inom parentes 549 00:32:53,670 --> 00:32:58,340 Jag kan skriva in CI) för att ta bort allt som är inom parentes 550 00:32:58,340 --> 00:33:05,460 och sedan fylla i vad jag vill göra, som int argc, vad du än vill göra, 551 00:33:05,460 --> 00:33:07,330 och på samma sätt, samma sak med offerter. 552 00:33:07,330 --> 00:33:13,130 Jag kan fixa text som är inne i citat, 553 00:33:13,130 --> 00:33:21,540 och jag kan också byta saker som är inne i taggar. 554 00:33:21,540 --> 00:33:24,400 Låter det vettigt? 555 00:33:24,400 --> 00:33:27,020 >> En annan sak du kan göra är att du inte behöver använda c.. 556 00:33:27,020 --> 00:33:30,690 Du kan också använda d om du vill ta bort vad som finns i dessa taggar. 557 00:33:30,690 --> 00:33:35,370 Om jag vill ta bort text i en tagg jag kan använda dit för att ta bort den taggen. 558 00:33:35,370 --> 00:33:40,360 Jag kan också använda vit för att markera vad som finns inuti taggen, till exempel. 559 00:33:40,360 --> 00:33:43,920 Den andra saken är istället för att jag i mitten du kan också använda en, 560 00:33:43,920 --> 00:33:49,490 som står för allt, så kom ihåg om du använder jag det kommer att hänvisa till textobjektet 561 00:33:49,490 --> 00:33:52,260 eller använda ett textobjekt som är innesluten inuti avgränsare, 562 00:33:52,260 --> 00:33:56,000 men om du använder en kommer att omfatta den texten samt avgränsare själv. 563 00:33:56,000 --> 00:33:59,180 Till exempel, om jag vill lyfta fram denna text och den omgivande taggen 564 00:33:59,180 --> 00:34:05,390 Jag kan använda karet, v för visuell höjdpunkt, en för alla, och sedan t för taggen. 565 00:34:05,390 --> 00:34:08,350 Du kan göra något sånt också. 566 00:34:08,350 --> 00:34:15,810 Kanske jag vill ta bort det här google.com med citattecken runt det också, 567 00:34:15,810 --> 00:34:22,860 och jag kan använda något som da "för att ta bort allt detta, till exempel. 568 00:34:22,860 --> 00:34:26,520 >> Några frågor hittills? 569 00:34:26,520 --> 00:34:32,270 Jag inser att jag är dumpning på dig mycket Vim kommandon på en gång, 570 00:34:32,270 --> 00:34:36,210 och detta är grunden för att jag vill utsätta dig för alla de olika kommandona 571 00:34:36,210 --> 00:34:39,480 och ger dig en introduktion till vad dessa kommandon gör i Vim. 572 00:34:39,480 --> 00:34:41,460 Men vad som kommer att hända är när du går tillbaka 573 00:34:41,460 --> 00:34:44,250 du kommer att behöva sakta plocka upp dessa kommandon en efter en. 574 00:34:44,250 --> 00:34:47,880 Du vill inte överväldiga dig själv, eftersom det är alltför överväldigande. 575 00:34:47,880 --> 00:34:50,460 Om du vill hämta Vim vad du måste verkligen göra är 576 00:34:50,460 --> 00:34:53,590 börja med den första grundläggande uppsättning, och jag har brutit upp den i lektioner för dig 577 00:34:53,590 --> 00:34:57,830 att göra det lättare för dig att följa och försöka behärska varje uppsättning kommandon 578 00:34:57,830 --> 00:35:00,400 en efter en, en i taget. 579 00:35:00,400 --> 00:35:03,500 Det är för mycket att göra allt på en gång, så vad ska du göra när du går tillbaka är 580 00:35:03,500 --> 00:35:10,950 gå till första lektionen, vilket är HJKL, insättningsläge, fly in i normalt läge, 581 00:35:10,950 --> 00:35:13,790 och spara och avsluta, och det är allt du egentligen behöver för att överleva i Vim, 582 00:35:13,790 --> 00:35:15,220 och blir riktigt, riktigt bekväm med det. 583 00:35:15,220 --> 00:35:18,270 Och efter några dagar när du är mycket bekväm med det 584 00:35:18,270 --> 00:35:21,170 du ska gå vidare till mer avancerade rörelseoperatörer, 585 00:35:21,170 --> 00:35:25,890 de mer avancerade rörelser, och vidare till de operatörer och så vidare och så vidare. 586 00:35:25,890 --> 00:35:32,160 >> Jag vet att jag går igenom en hel del, men jag vill få dig utsatt för en massa olika saker. 587 00:35:32,160 --> 00:35:36,080 Men om du är redo för utmaningen, kan jag visa dig 588 00:35:36,080 --> 00:35:43,690 hur du kan sätta detta tillsammans med den mesta av vad vi just lärt oss i dag, 589 00:35:43,690 --> 00:35:46,280 och du kan också följa med om du vill, 590 00:35:46,280 --> 00:35:48,590 men jag skapade några random övning. 591 00:35:48,590 --> 00:35:51,140 Antag att vi har någon sorts register som detta 592 00:35:51,140 --> 00:35:53,200 där du har dessa block med människors namn, 593 00:35:53,200 --> 00:35:55,440 hus, år, och koncentrationer och vad inte, 594 00:35:55,440 --> 00:35:59,240 och du vill lägga till en ny post för dig själv. 595 00:35:59,240 --> 00:36:01,530 Vad är det bästa sättet för dig att göra detta? 596 00:36:01,530 --> 00:36:03,240 Låt oss göra så här. 597 00:36:03,240 --> 00:36:06,620 Varför inte vi först belysa detta block. 598 00:36:06,620 --> 00:36:08,710 Du kommer att välja det, och vi kan trycka på y för att hämta tillbaka den, 599 00:36:08,710 --> 00:36:11,180 så nu kan vi i princip kopiera och klistra in den här mallen först 600 00:36:11,180 --> 00:36:16,500 utan att behöva skriva om det hela från början. 601 00:36:16,500 --> 00:36:20,390 Nu ska jag trycka j ner en massa gånger för att gå ner, 602 00:36:20,390 --> 00:36:22,560 och jag ska trycka på p för att klistra in den. 603 00:36:22,560 --> 00:36:26,990 Kanske ska jag lägga till några extra rader för en plats, 604 00:36:26,990 --> 00:36:31,130 och låt oss säga att nu vill jag ändra ditt namn till någon. 605 00:36:31,130 --> 00:36:36,220 Då kan jag gå här och skriv in c2w som innan för att ändra det namnet. 606 00:36:36,220 --> 00:36:38,860 Bob Jones, vem vet. 607 00:36:38,860 --> 00:36:41,470 Kanske om jag vill ändra i huset jag kan gå in i mitten här 608 00:36:41,470 --> 00:36:44,230 och skriv in guiden och sätta Cabot House. 609 00:36:44,230 --> 00:36:47,850 >> Här kan vara ett exempel på där du kanske vill överväga att använda 610 00:36:47,850 --> 00:36:52,970 ersättningsläget för att ändra din examen år om du vill, 611 00:36:52,970 --> 00:36:54,890 eller vi kan också använda guiden också. 612 00:36:54,890 --> 00:36:57,550 Det spelar ingen roll. 613 00:36:57,550 --> 00:37:07,180 Kanske vill du ändra din stora. 614 00:37:07,180 --> 00:37:11,310 Och det är vad du gör. 615 00:37:11,310 --> 00:37:17,170 Och kanske jag kommer att ge er en demonstration av vad jag kan göra 616 00:37:17,170 --> 00:37:23,820 om jag var-om du fortsätter att lära sig mer avancerade kommandon i Vim 617 00:37:23,820 --> 00:37:25,690 eftersom vi knappt skrapat på ytan här, 618 00:37:25,690 --> 00:37:28,960 och jag skulle kunna göra den här typen av redigering ännu snabbare än jag har visat dig här 619 00:37:28,960 --> 00:37:32,860 eftersom jag vet att fler kommandon som jag inte har fått en chans att visa dig för idag. 620 00:37:32,860 --> 00:37:37,500 Till exempel, om jag vill lyfta fram det jag kan göra det så där, 621 00:37:37,500 --> 00:37:39,960 flytta ner. 622 00:37:39,960 --> 00:37:43,860 Jag har lagt min egen kartläggning 623 00:37:43,860 --> 00:37:48,100 att i princip automatiskt markera saker för mig 624 00:37:48,100 --> 00:38:02,610 och jag kan-jag vet inte. 625 00:38:02,610 --> 00:38:05,260 Jag menar, det är bara att försöka visa dig att du kan verkligen, verkligen 626 00:38:05,260 --> 00:38:08,180 börja redigera saker snabbare, särskilt när du har alla dessa olika områden, 627 00:38:08,180 --> 00:38:10,620 och normalt vad du kanske gör är slags klicka 628 00:38:10,620 --> 00:38:13,530 och lyfta fram och skriva. 629 00:38:13,530 --> 00:38:18,530 Du kan göra allt på en gång, kopiera och klistra in, 630 00:38:18,530 --> 00:38:21,640 rör sig upp och ner mellan filen, 631 00:38:21,640 --> 00:38:24,060 bara avgränsa grejer, formatering grejer. 632 00:38:24,060 --> 00:38:29,670 Allt detta kan göras mycket, mycket snabbare i Vim. 633 00:38:29,670 --> 00:38:32,580 >> Bara en sista liten sak som jag tror kan vara riktigt trevligt, 634 00:38:32,580 --> 00:38:34,820 som sök och ersätt. 635 00:38:34,820 --> 00:38:36,460 De av er som har använt Gmail genvägar 636 00:38:36,460 --> 00:38:41,050 kommer du också veta att om du skriver in / skickar dig till sökrutan 637 00:38:41,050 --> 00:38:44,210 och i en mängd olika applikationer i allmänhet hittar du att snedstreck 638 00:38:44,210 --> 00:38:47,300 eller kanske styra snedstreck eller något att göra med snedstreck 639 00:38:47,300 --> 00:38:49,870 kommer att sätta dig in i någon sorts sökläge, 640 00:38:49,870 --> 00:38:53,240 och som också i grunden kommer från Vim huvudsak 641 00:38:53,240 --> 00:38:58,670 eftersom snedstreck operatör eller kommando snedstreck kan du ta in 642 00:38:58,670 --> 00:39:01,770 något slags snöre som du kan använda för att söka i dokumentet. 643 00:39:01,770 --> 00:39:05,350 Du kan n och kapital N för att gå till nästa och föregående förekomst, 644 00:39:05,350 --> 00:39:10,700 och du kan även använda något liknande för att söka och ersätta i dokumentet. 645 00:39:10,700 --> 00:39:15,060 Jag ska ge er en demonstration på vad som kan göras. 646 00:39:15,060 --> 00:39:18,200 >> Kanske om jag vill hitta alla förekomster av strängen ryck i det här dokumentet 647 00:39:18,200 --> 00:39:23,310 Jag kan skriva in / ryck, som ni kan se i det nedre vänstra hörnet, 648 00:39:23,310 --> 00:39:26,350 och när jag skriver in den belyser alla instanser. 649 00:39:26,350 --> 00:39:34,160 Jag kan använda i princip n för att hoppa fram och tillbaka mellan alla dessa olika instanser, 650 00:39:34,160 --> 00:39:40,420 och låt oss anta att jag vill söka och ersätta ryck med några slumpmässiga ord 651 00:39:40,420 --> 00:39:42,180 det är också i dokumentet. 652 00:39:42,180 --> 00:39:47,070 Jag kan trycka på: för att börja skriva in någon form av kommando inom Vim, 653 00:39:47,070 --> 00:39:49,610 något kommando som är mer sofistikerad än att flytta runt 654 00:39:49,610 --> 00:39:51,370 eller ta bort eller något liknande. 655 00:39:51,370 --> 00:39:56,860 Jag kommer att skriva in% tecknet att hänvisa till att jag vill använda det här kommandot substitution 656 00:39:56,860 --> 00:39:58,230 på hela dokumentet. 657 00:39:58,230 --> 00:40:02,380 Skriv in er för substitution. Detta kommer från PEARL väsentligt. 658 00:40:02,380 --> 00:40:07,040 Och detta nästa steg är en ganska standard kommando som du hittar i PEARL 659 00:40:07,040 --> 00:40:09,790 stället och i andra programmeringsspråk som du kommer 660 00:40:09,790 --> 00:40:13,170 nog börja lära sig som du gör mer datavetenskap, 661 00:40:13,170 --> 00:40:20,130 och jag kan i princip använda / skriva en /, skriv in ordet jag vill söka och ersätta 662 00:40:20,130 --> 00:40:24,280 och skriv sedan en annan / och skriva vad ord jag vill ersätta det ordet med. 663 00:40:24,280 --> 00:40:27,450 Vem vet, kanske NyanCat. 664 00:40:27,450 --> 00:40:30,390 Jag gör det, och då ser du att allt blev ersatt. 665 00:40:30,390 --> 00:40:34,000 >> Men du kommer att märka att det är det här ordet här. 666 00:40:34,000 --> 00:40:37,620 Av någon anledning har vissa av våra instanser av ryck ersättas men inte alla, 667 00:40:37,620 --> 00:40:40,250 och det beror på hur denna typ av språk har skrivits 668 00:40:40,250 --> 00:40:43,550 inte bara i Vim men på andra ställen är att när du kör kommandot substitution 669 00:40:43,550 --> 00:40:46,470 det kommer bara att ersätta den första förekomsten av det ordet i varje rad, 670 00:40:46,470 --> 00:40:52,810 så om jag vill verkligen ersätta alla förekomster av ordet på varje rad 671 00:40:52,810 --> 00:40:56,890 då måste jag göra samma sak men lägga en g flaggan i slutet, 672 00:40:56,890 --> 00:41:00,810 som står för den globala, och då kommer faktiskt 673 00:41:00,810 --> 00:41:06,200 ersätta alla instanser. 674 00:41:06,200 --> 00:41:09,710 Och när du lär dig de reguljära uttryck, det finns faktiskt en CS50 seminarium 675 00:41:09,710 --> 00:41:12,120 på reguljära uttryck, så om du är nyfiken på reguljära uttryck 676 00:41:12,120 --> 00:41:16,970 Du kan också ta det seminarium och lära sig mer. 677 00:41:16,970 --> 00:41:19,920 >> Men till exempel, låt oss säga att jag har en lista med namn som detta, 678 00:41:19,920 --> 00:41:23,920 och jag vill ordna det, så istället för att ha efternamn, kommatecken, förnamn 679 00:41:23,920 --> 00:41:27,490 Jag vill ordna det så det står förnamn, utrymme, efternamn. 680 00:41:27,490 --> 00:41:30,750 Du kan faktiskt använda detta kommando här 681 00:41:30,750 --> 00:41:33,600 att i huvudsak göra det för dig, så att du kan se här 682 00:41:33,600 --> 00:41:37,170 Vi börjar med ett s, vilket innebär att vi vill göra en sök och ersätt, 683 00:41:37,170 --> 00:41:42,970 och sedan jag lagt till en flagga som heter \ v, vilket är något som kallas denna magiska flagga 684 00:41:42,970 --> 00:41:45,810 i Vim som låter mer lätt att du kan göra reguljära uttryck. 685 00:41:45,810 --> 00:41:49,370 Sedan från det vi i princip matcha för en enskild linje 686 00:41:49,370 --> 00:41:55,960 som är av formen en uppsättning ord, kommatecken, utrymme och en uppsättning ord eller en uppsättning bokstäver. 687 00:41:55,960 --> 00:41:59,240 \ W + innebär i grunden ett eller flera tecken, 688 00:41:59,240 --> 00:42:04,030 och parentes används för att fånga dessa grupper 689 00:42:04,030 --> 00:42:06,120 så jag kan hänvisa till dem senare. 690 00:42:06,120 --> 00:42:09,910 Som ni ser, en gång dessa fångar 2 block av ord 691 00:42:09,910 --> 00:42:11,690 som är separerade med ett kommatecken, utrymme 692 00:42:11,690 --> 00:42:15,510 vad vi vill ersätta den med är jag använder \ 2 och \ 1 693 00:42:15,510 --> 00:42:18,130 för att gå tillbaka till de ord som var tillfångatagna 694 00:42:18,130 --> 00:42:20,950 i själva find-kommandot, 695 00:42:20,950 --> 00:42:24,970 och så \ 2 refererar till det som finns i den andra uppsättningen av parenteser, 696 00:42:24,970 --> 00:42:28,140 \ 1 hänvisar till det som finns i den första uppsättningen av parenteser, 697 00:42:28,140 --> 00:42:31,680 och som ni kan se, jag sätter 2 före den 1 med ett mellanslag 698 00:42:31,680 --> 00:42:36,650 att försöka flytta förnamnet före efternamnet. 699 00:42:36,650 --> 00:42:38,380 Låter det vettigt? 700 00:42:38,380 --> 00:42:43,450 >> Och vad jag kan göra är att jag kan gömma dem först så jag bara köra det här kommandot på dessa linjer, 701 00:42:43,450 --> 00:42:53,720 och sedan ska jag skriva in detta kommando. 702 00:42:53,720 --> 00:42:57,050 Du kan se den gör exakt som delas. 703 00:42:57,050 --> 00:42:59,400 Och återigen, det är knappt skrapat på ytan, 704 00:42:59,400 --> 00:43:03,020 och om du går till den reguljära uttrycket seminariet då jag är säker på att du kommer att lära dig 705 00:43:03,020 --> 00:43:05,070 mycket mer olika saker du kan göra med reguljära uttryck, 706 00:43:05,070 --> 00:43:08,910 och detta börjar i princip att antyda vad du verkligen kan göra med Vim 707 00:43:08,910 --> 00:43:10,850 om du verkligen börjar att bli en mästare på det. 708 00:43:10,850 --> 00:43:14,520 Kanske vill du Refactor något, och du vill hitta alla förekomster 709 00:43:14,520 --> 00:43:16,980 av någon funktion som följer någon slags namngivning mönster. 710 00:43:16,980 --> 00:43:18,570 Du vill ändra det sätt som är namngivna. 711 00:43:18,570 --> 00:43:21,140 Du kan skriva någon form av kommando som detta för att göra det åt dig, 712 00:43:21,140 --> 00:43:23,850 och det är den typ av flexibilitet du kan få inom Vim 713 00:43:23,850 --> 00:43:30,210 att du bara inte kommer att få i andra textredigerare. 714 00:43:30,210 --> 00:43:34,830 >> Det täcker i stort sett alla de saker som jag ville lära dig idag i dagens seminarium, 715 00:43:34,830 --> 00:43:38,580 men återigen, jag vill verkligen betona att om du vill plocka upp Vim 716 00:43:38,580 --> 00:43:42,120 det är sant att det finns en något högre inlärningskurva i början. 717 00:43:42,120 --> 00:43:44,230 I början kommer du att vara något mindre produktiv 718 00:43:44,230 --> 00:43:47,010 än vad du förmodligen skulle vara på annat sätt, men om du hålla fast vid det 719 00:43:47,010 --> 00:43:49,890 inom några dagar eller några veckor, beroende på hur snabbt du lär dig, 720 00:43:49,890 --> 00:43:56,300 du kommer att bli mycket, mycket snabbare, och jag försökte ge dig en demonstration 721 00:43:56,300 --> 00:43:59,070 på vad Vim kan men jag fick verkligen en chans att visa dig 722 00:43:59,070 --> 00:44:03,230 vad som händer när jag normalt, till exempel i klass jag skriver i mina anteckningar med Vim. 723 00:44:03,230 --> 00:44:07,920 Det beror på att jag kan jobba så mycket snabbare i Vim än jag kan med något annat program. 724 00:44:07,920 --> 00:44:14,480 Det är bokstavligen en 2 eller 3 tiden produktivitetsökning i Vim jämfört med andra program, 725 00:44:14,480 --> 00:44:18,800 inte bara med hastigheten på textredigering utan även på det sätt jag kan flytta runt i dokumentet 726 00:44:18,800 --> 00:44:21,510 och hur jag kan komma åt andra filer på min dator 727 00:44:21,510 --> 00:44:23,110 och hoppa in mellan dem och så vidare och så vidare. 728 00:44:23,110 --> 00:44:27,600 Det är bara en riktigt, riktigt stor produktivitet uppsving. 729 00:44:27,600 --> 00:44:30,550 >> Men när du lär dig, vill du se till att du lär dig en sak i taget, 730 00:44:30,550 --> 00:44:34,970 och försöka att inte överväldiga dig med alltför många olika kommandon 731 00:44:34,970 --> 00:44:39,090 eftersom det finns en hel del kommandon och en massa olika genvägar kan du lära dig i Vim. 732 00:44:39,090 --> 00:44:41,780 Du vill plocka upp en liten bit i taget och under åren 733 00:44:41,780 --> 00:44:48,990 gradvis samla en större och större förståelse för Vim. 734 00:44:48,990 --> 00:44:51,790 Om du vill fortsätta att lära sig mer, dessa är några av de mer avancerade ämnen 735 00:44:51,790 --> 00:44:55,900 du kan fortsätta att lära sig om, och även detta skrapar knappt på ytan. 736 00:44:55,900 --> 00:44:59,050 Här är några populära plugins kan du välkommen att kolla in och Googla dem 737 00:44:59,050 --> 00:45:03,750 och leka med dem om du vill och bara se vilken typ av plugins är ute. 738 00:45:03,750 --> 00:45:06,260 Och sedan i slutet av denna PowerPoint, jag har en massa länkar 739 00:45:06,260 --> 00:45:08,740 till olika resurser kan du använda för att lära av. 740 00:45:08,740 --> 00:45:12,700 Här finns en massa olika länkar som du kan använda för att komma igång med Vim. 741 00:45:12,700 --> 00:45:15,150 De har olika tutorials och vad inte, 742 00:45:15,150 --> 00:45:17,770 och slutligen, dessa är några mer avancerade saker du kan använda 743 00:45:17,770 --> 00:45:19,790 att även kolla in också, 744 00:45:19,790 --> 00:45:22,340 vissa skärm avgjutningar och några mer avancerade tekniker i Vim 745 00:45:22,340 --> 00:45:26,450 och även några olika delar av källkoden kan du slå upp på GitHub 746 00:45:26,450 --> 00:45:28,760 bara titta på andras konfigurationsfiler 747 00:45:28,760 --> 00:45:32,710 eller för att titta på plugins i Vim och så vidare och så vidare. 748 00:45:32,710 --> 00:45:40,380 >> Det är allt jag har för dig. 749 00:45:40,380 --> 00:45:43,000 [CS50.TV]