[Seminar Vim] [Brandon Liu] [Harvard University] [Dette er CS50.] [CS50.TV] I dag bliver en introduktion til Vim. Hvor mange af jer har hørt om Vim? Hvad har du hørt om Vim? [Studerende] Det løser alle dine problemer. [Brandon L.] Det løser alle dine problemer. Alt andet du fyre har hørt om Vim? Ingen visninger? [Studerende] Næsten alle jeg har talt med folk til at bruge Vim. Åh, søde. [Studerende] En masse mennesker jeg kender kan lide at bruge Vim. Okay, det er godt, fordi en masse mennesker i CS51 begynde at hente Emacs fordi Emacs har lidt bedre støtte for det sprog, du vil bruge i CS51, og jeg bange for, at ikke nok folk på Harvard bruger Vim, så jeg virkelig forsøge at gøre et godt stykke arbejde for at tilskynde Vim brug. Men her er et klassisk xkcd tegneserie som jer måske vil finde interessant. Har du fyre brugte Nano før overhovedet? Denne tegneserie siger Nano? Rigtige programmører bruger Emacs. Hey, reelle programmører bruger Vim. Nej, rigtige programmører bruger Ed, som er dette, du ikke nogensinde ønsker at bruge Ed. Det er virkelig, virkelig gamle og virkelig dårlig, og reelle programmører bruger en magnetiseret nål og en rolig hånd. Og du kan læse resten, men det er temmelig morsomt. Og det sjove er i slutningen. De siger: "Åh, ja, selvfølgelig, er der en Emacs kommando til at gøre." Gode ​​gamle Cx Mc M-sommerfugl, som er en slags en jab på Emacs fordi Emacs er historisk kendt for at være en lille smule oppustet og til at få kommandoer til næsten alt, så det er en slags vittighed til Emacs. Hvad er Vim? Vim er en avanceret teksteditor for programmører. Jeg virkelig ønsker at gøre sondringen mellem tekst editor og noget som et dokument processor. Microsoft Word er kendt som et dokument processor. Du kan indstille margener, gøre tingene fed, understregning ting, strejke igennem ting, ændre skriftstørrelse og whatnot. En tekst editor gør intet mere end bare at redigere tekst. Bogstaveligt du bare nødt tegn. Der er ingen form for styling, størrelser, skrifttyper, farver, eller noget lignende. Alt du skal gøre er redigere tekst, og Vim er specielt lavet til programmering. Det har en masse funktioner indbygget i bare for programmering. Det er designet specielt til effektiv tekstredigering. Generelt Vim kendt for at være stort set den hurtigste tekst editor du kan eventuelt bruge sammenlignes med en anden tekst editor, der er muligt. En masse af IDE-lignende funktioner er ikke bygget direkte ind i Vim, så hvis du har brugt en IDE og du er vant til ting som kompilere og køre automatisk eller debugging hvad der er i din IDE eller en hel række forskellige ting Vim kommer ikke med det naturligt, men der er en hel række plugins, som du kan bruge til at tilføje den slags funktionalitet til Vim. Vim sig selv fokuserer på tekst redigering og gør tekstredigering virkelig, virkelig godt. Og endelig, det er virkelig tilpasses og udvides, og dybest set Vim har eksisteret, eller VI, der Vim er bygget på, har eksisteret i over 40 år, og det er en meget, meget dyb program, og folk vil bruge det til en levetid og aldrig rigtig mestre program til sin fulde, og du vil altid fortsætte med at lære hele dit liv i årenes løb, altid blive bedre og bedre. Der er dybest set ingen ende på, hvad du kan lære og hvor meget du kan forbedre med Vim, som er virkelig spændende. Du ønsker ikke at se det som noget skræmmende, fordi du kan blive meget, meget dygtige i Vim på blot et par uger, men det er lidt ligesom en kontinuerlig- du kan altid lære mere og lære mere og gøre tingene bedre og bedre, som er form for spændende for mig. Dette er et eksempel på, hvad Vim ser ud. Dette er ikke min. Du vil se nogle levende demonstrationer lige nu. Dette er et eksempel på, hvad Vim kunne se ud. Hvad vi kommer til at gøre i dag er, at vi kommer til at starte med  en hurtig præsentation af hvad Vim kan gøre. Jeg har tænkt mig at gøre nogle tricks og whatnot til jer så du kan se, hvorfor jeg gerne Vim så meget, og hvorfor folk som Vim så meget, og så derfra vil vi gå ind i en blid introduktion. Faktisk vil det være lidt hurtig, en introduktion til Vim. Jeg vil bede jer at hente en tekstfil og til at følge med mig, hvis du kan. Dette er Vim, og lige her jeg bruger MacVim, så hvis du fyre har Macs kan du overveje at bruge MacVim fordi det er en grafisk udgave af Vim, selv om regelmæssig Vim, hvad der er i din kommandolinje, fungerer fint. Jeg har tænkt mig at vise dig et par tilfældige tips og tricks som du kan bruge i Vim at vise dig, hvorfor det er så cool. Bare et par tilfældige ting jeg har tænkt mig at gå igennem. Den første ting er tekstobjekter, og der er et par kommandoer omkring tekstobjekter og jeg vil faktisk lære dig, hvad tekst objekter er mere detaljeret senere i seminaret, men for eksempel, lad os sige jeg stavet mit navn forkert, Barndon Liu, og jeg ønsker at ændre det. Alt, hvad jeg skal gøre er at få min markøren et sted i mit navn og type på kommandolinjen CIW, og det vil slette hele mit navn, sætte mig i insert mode og jeg kan skrive mit navn og ordne det. Tilsvarende, hvis jeg ønsker at ændre noget inde citater er der også en kommando til det. Jeg kan slette ting inde citater. Ikke mere at skulle dobbeltklikke på, flytte hånden over på musen, dobbeltklik, og skriv derefter noget igen Du kan gøre alt fra tastaturet, uanset hvad det er. Eller alternativt, lad os sige, at jeg har billedet tag inde i denne anker tag. Har du fyre dækket HTML i klassen endnu? Ja, så måske jeg vil slette denne tag, som normalt, hvad du skal gøre, er du nødt til at bruge din mus og omhyggeligt fremhæve præcis, hvad du ønsker at slette og slette den. Men i Vim, der er simpelthen DIT, og du kan slette det ud virkelig hurtigt, og jeg vil forklare dig, hvad alle disse kommandoer betyder, og hvordan du bruger dem i en anden. Et andet eksempel, jeg har noget kode her, og lad os sige, jeg ønsker at indrykke kode, men jeg vil indrykke koden blot i parentes, og jeg kan også indrykke kode ved hjælp af 3-kommandoer hjælp dybest set> iB. En anden ting, der er virkelig cool om Vim er noget der hedder visuel blok redigering. Jeg ved ikke, hvis du fyre nogensinde har ønsket at fremhæve en rektangulær blok af tekst i din kode til tider i stedet for at skulle gøre denne underlige slags linje ting, der spænder over alle de forskellige linjer. For eksempel i Vim kan du gøre det. Jeg kan fremhæve rektangler som dette, hvilket er ret cool, men desuden kan jeg redigere ved hjælp af denne funktionalitet. For eksempel, hvis jeg ønsker at give en form for præfiks til alle vores navne Jeg kan fremhæve en blok og derefter tilføje noget. Ligeledes kan jeg også fremhæve denne blok og vælger at slette det, eller måske vil jeg fremhæve denne blok og ændre det til D, fordi vi er alle læger. Uanset hvad det er, kan du gøre alle disse forskellige ting. Endelig foldning er virkelig cool. En masse af IDE'er har denne, hvor man kan folde forskellige funktioner ud af visningen hvis du ikke ønsker at se dem. For eksempel antage, jeg har denne masse tekst her, og jeg har ikke rigtig lyst til at se det. Jeg ønsker at holde det ude af betragtning, fordi jeg redigerer noget andet i filen. Jeg kan folde den op, så det hele er brudt sammen, og på den måde det er ude af syne, og jeg kan redigere andre ting, der er på siden, og det er virkelig stor. Du kan folde op funktioner og whatnot eller folde op klasser, når du programmerer bare for at holde dem ude af syne, når du ikke redigere dem, og senere, når du ønsker at se dem, kan du åbne dem op. Og du kan se det lige har åbnet det hele op. Faner, buffere og vinduer. Vim er ret cool i at normalt i en masse teksteditorer kan du kun redigere en fil ad gangen, ligesom i Nano, eller måske hvis du bruger Notesblok eller Gedit. Jeg har faktisk aldrig brugt Gedit meget, men mindst i Notepad + + du kan have faner, men Vim har begrebet faner, buffere og vinduer. For eksempel kan du åbne op for en masse nye faner. Du kan se her på toppen Jeg har nu en masse faner og jeg kan lukke dem. Desuden er der dette koncept af buffere, hvilket er den idé, at når du har åbnet en fil det forbliver i live i bufferen, og hvis du ønsker at navigere til filen virkelig hurtigt du kan navigere til det virkelig hurtigt inden bufferen så godt, og desuden inden for en rude kan du også opdele dit vindue op i flere vinduer. For eksempel, hvis jeg ønsker at opdele vinduet op i flere vinduer du kan se lige her, at jeg kan have den samme kode to gange, og jeg kan opdele mere og mere og mere, og lige nu er det ikke ser, at god fordi som standard Jeg har den standard vinduesstørrelse være slags stor så alle de andre er knust ud, men normalt når jeg er på min computer og ikke på denne projektor Jeg kan have flere ruder åbne på samme tid, hvilket er virkelig rart for redigering af flere filer på samme tid. Du kan også have ting som at vælge og udskifte, og vi vil faktisk dække det i seminaret, så jeg vil springe over, at for nu. Du kan også interagere med kommandolinjen i alle mulige forskellige måder. For eksempel, jeg hvis jeg har en slags liste her og ønsker at sortere det- Jeg ved det ikke, lad os tilføje en anden frugt, drue, og jeg kan fremhæve dette ved hjælp af highlight funktionen og kalder sortere, og det vil sortere det automatisk for mig. Tilsvarende, hvis du kommer til at redigere CSS, som jeg formoder du sandsynligvis vil gøre for dit afgangsprojekt, de fleste mennesker gør, og måske du vil beholde din CSS organiseret ved at sortere dem i alfabetisk rækkefølge. Du kan også markere dem og kalde sortere, og det vil sortere dem for dig. Disse er nogle af de eksempler på de ting, Vim kan gøre, og du vil opdage, at den vigtigste ting, som jeg virkelig ønsker at gøre opmærksom på er, at jeg gør alt fra tastaturet, og hvis du er i stand til at se, hvor mine hænder er placeret vil du også se, at mine hænder aldrig rigtig flytte fra hjemmet rækken. Normalt når du redigerer tekst, du normalt nødt til at bruge en mus og klikke rundt og whatnot, og slags bevægelse trækker dig ned og spild af tid, eller måske du flytter mellem hjemmeholdets række og piletasterne, og så du er ved at flytte frem og tilbage som det, der er en smule besværligt men også bremser dig ned, og de ting er, når du får rigtig god til Vim alt, hvad du ønsker at gøre, er gjort uden at skulle flytte hænderne fra hjemmet rækken, som er fantastisk. Hold på, jeg kommer til at åbne op denne ansøgning. Der vi går. Nu kan du se, hvilke kommandoer der kører ned i det nederste højre vindue. Alle de funktioner, jeg bare viste dig er ting, der er inkluderet som standard med Vim, men der er også et stort antal af plugins, som du også kan bruge at forbedre din Vim oplevelse. Hvis du hentede konfigurationsfiler, som jeg inkluderet, og der er vejledning i at installere dem i PowerPoint og også i den e-mail jeg sendte ud, har jeg omkring 40 plugins installeret eller måske 30 plugins, og hver enkelt bringer ekstra funktionalitet til Vim, der forbedrer din Vim oplevelse. For eksempel er en af ​​mine favoritter er noget der hedder surround.vim, og det dybest set giver dig mulighed for at arbejde med omgivende eller afgrænsende tegn meget lettere. Et eksempel, jeg ved ikke, hvis du fyre nogensinde kode i LaTeX, men Latex er en matematisk opsætning sprog, der bruges til at virkelig flot matematik, og når du vil have noget til at ligne matematik du pakke det i dollartegn, og lad os sige, jeg skriver nogle ligning som F = ma, og jeg glemte at pakke det i dollartegn. Så kan jeg fremhæve dette og pak det ind i dollartegn ligesom det. Alternativt Vim giver dig mulighed for at slette ting inde tags og slette tags og whatnot, men Vim af natur ikke tillader dig at ændre tags, så for eksempel, jeg har denne div tag, og jeg ønsker at opgradere til HTML5 og bruge en ny header tag. Jeg kan gøre forandringer omkring tag og type i header, og det vil automatisk ændre det for mig. Ligeledes lad os sige vi har noget i parentes, og jeg ønskede at ændre det fra parentes i parentes eller noget lignende. Jeg kan også ændre, der virkelig nemt ved at skrive i C for forandring, s for surround, parenteser. Åh, jeg tror jeg nødt til at skrive det hurtigere. Parenteser og seler eller beslag, og det vil automatisk ændre det for mig, som er virkelig rart, ellers normalt er det virkelig besværligt. Dette er virkelig rart at skifte mellem måske enkelt citat og dobbelt citerer strenge eller noget lignende. Det er et eksempel use case. Der er et plugin kaldet Fugitive der integrerer med Git. Jeg kan gætte måske du fyre har ikke brugt Git så meget i CS50, men du vil finde dig selv at bruge Git mere og mere og mere, ikke kun i klasser hele Harvard, men også på arbejdspladser og whatnot, og normalt du nødt til at skifte frem og tilbage mellem kommandolinjen og Vim at interagere med Git, men der er plugins til at integrere med Git indefra Vim og også at give dig selv yderligere funktionalitet oven på Git. Der er noget, der hedder NERDTree, som du kan bruge til at udforske filstruktur inde fra Vim. For eksempel kan jeg åbne op NERDTree på højre rude, og du kan stort set se Tilfældige filer og åbne ikke skat, ikke se på min skat. Du kan se på filer og whatnot og åbne andre filer og så videre og så videre. Og jeg vil ikke gå ind i disse andre plugins, så vi kan stort set dykke og begynder at arbejde på Vim, men der er plugins, der tillader dig at kommentere lettere, plugins, der tillader dig at hoppe i mellem filer lettere plugins, der giver dig syntaks kontrol indefra Vim, som er virkelig cool, og det giver dig syntaks kontrol for de fleste sprog lige ud af kassen, ting som regnbue parenteser, som faktisk er virkelig, virkelig cool. Lad mig give dig et eksempel på, at lige nu. Lad os se. Her er nogle tilfældige kode, som jeg var ved at skrive, og du vil opdage, at beslagene og parenteser alle er farvet, og parenteser og beslag af samme farve matcher, hvilket er rart og nogle gange forbedrer læsbarheden af ​​din kode. Du har også autocompletion, formatering tabelform. Når du har noget, du ønsker at få alle de kommentarer til linje op eller du ønsker at lave en tabel i din tekst, og du ønsker at få alt til at ligne en nice tabel, i stedet for at skulle formatere det manuelt Der er plugins, der vil formatere det for dig, og så videre og så videre. Listen bliver ved og ved og ved. Jeg kunne bruge timer på at udforske alle de forskellige Vim plugins, der eksisterer, og det er utroligt, hvad der er derude. Eventuelle spørgsmål indtil videre? Sød. I så fald vil vi begynde at spille rundt med Vim, og jeg vil have jer til at arbejde med nogle Vim med mig så du kan få en fornemmelse for det, og jeg kan vejlede dig i dine første skridt, der arbejder med Vim fordi en masse mennesker får overvældet, når de åbner Vim op, og nogle gange, hvis du ikke engang kender kommandoen til at forlade du kan ikke engang komme ud af Vim, men det er ikke så slemt. Du skal bare have et par minutter af vejledning fra en der har brugt Vim før eller læse nogle tutorials på nettet, og du vil være på din måde på ingen tid. Her er nogle instruktioner for at installere Vim, hvis du ikke allerede har. Du kan se på disse dias efter præsentationen, hvis du vil installere flere ting. Også disse er nogle instruktioner til installation af mine konfigurationsfiler, og du kan også følge disse instruktioner senere, hvis du ikke allerede har. Hvis du fyre kunne gå til dette link og downloade en tekstfil. Linket fører dig til denne tekst fil, som jeg gerne vil have dig til at hente og åbne op i Vim, og der er en masse øvelser og whatnot derinde, at du kan følge rundt med mig og begynde at få nogle praksis med nogle af de grundlæggende operationer i Vim. Godt. Mens du åbner det op Jeg har tænkt mig at give en kort intro til 2 virkelig centrale principper i Vim redigering som er virkelig vigtigt at forstå, før du dykker ned i Vim, og det er modal redigering og operatører og bevægelser. Jeg vil dække modal redigering først, og derefter vil vi dække operatører og bevægelser i en lille smule. Den første nøgle skelnen mellem Vim og temmelig meget alle andre teksteditorer af nogen art, er, at Vim er en modal editor, og hvad det betyder, er, når du bruger Vim du kunne være i en af ​​mange forskellige tilstande. Der er normal tilstand, er der indsæt-mode, der er visuel tilstand, så videre og så videre, og de ting er, dine tastetryk tage på forskellige handlinger, tage på forskellig betydning afhængigt af, hvilken tilstand du er i. Blot som eksempel, normal er den tilstand du er i, når du bevæger dig rundt, og så jeg ville bruge nøglen J for at bevæge sig nedad, men i insert mode du bruge tasten J til rent faktisk at skrive ud J på skærmen, og det er derfor en masse mennesker bliver forvirrede, fordi de ikke er vant til være i forskellige tilstande hele tiden, og så de vil være at skrive tingene ud, og du er vant til at have hvad du skriver vises på skærmen, men i Vim måske din cursor bevæger sig over det hele fordi du skriver underlige tegn, og pludselig får flyttet ind indsætningstilstand fordi du har skrevet nogle vigtige der sætter dig ind i insert mode, og derefter teksten begynder at flyve ud, så folk bliver forvirrede på grund af dette. Men du er nødt til at holde styr på, hvilken tilstand du er i, og hvis man ser på den meget nederste værktøjslinje af Vim bør der være en indikator, der fortæller dig, hvilken tilstand du er i øjeblikket i, som bør være nyttige. Men generelt de 3 vigtigste funktioner, du bør vide om, der er kun sandsynligvis 6 eller 7 eller 8 tilstande eller deromkring, men du bruger det meste af din tid i 3.. Den første ting er normal tilstand. Dette er, hvor du tilbringer det meste af din tid. Alle tastetryk er logget som en slags kommando, og vi vil lære en masse af disse kommandoer i løbet af dagen i dag. Den anden tilstand er insert-mode, som er der, hvor du rent faktisk skriver tingene ud, og indsæt tilstand er dybest set den tilstand, du normalt bruges til. Du skriver noget, og det bare kommer på skærmen, og visuel tilstand er noget hvor du kan gøre fremhæve. Du så tidligere, hvor jeg nogle gange ville fremhæve tekst og manipulere det på forskellige måder, og det er et eksempel ved hjælp af visuel tilstand. Vi vil starte med de absolutte grundlæggende du behøver for at overleve i Vim, og det er dybest set disse 7 kommandoer lige her. HJKL bruges til at navigere rundt i filen, og de svarer til venstre, ned, op, og til højre, og du er fri til at bruge piletasterne så godt, men vi virkelig opfordre dig til at bruge HJKL så meget som muligt fordi ideen er, at mens du redigerer, kan du flytte rundt i dokumentet uden at skulle skifte i mellem piletasterne og hvor du skriver, der er virkelig, virkelig rart. Du blot ønsker at flytte nogle få tegn overstået. Du behøver ikke at flytte hele din hånd over, og det er lidt rart at have det. Nogle Vim eksperter faktisk kortlægge deres piletasterne til andre funktioner fordi de allerede har HJKL, og de kan bruge deres piletasterne for andre funktioner som godt. HJKL bevæger dig rundt, mens du er i normal tilstand. Hvis du ønsker at gå ind i insert mode og skriv noget du kan trykke på i for indsættelse mode, og som sætter dig i insert mode og du kan skrive noget, og du skriver flugt at komme fra indsætningstilstanden tilbage til normal tilstand. Flygte altid sender dig tilbage til normal tilstand uanset hvilken tilstand du er i, og hvis du ønsker at forlade du kan skrive: WQ komme ind, og den måde, du kan huske dette er w står for skrivning, og q står for holde op, så: WQ, og kolon kører kommandoen, og så: WQ indtaste for at køre kommandoen gemmer og udgange. Hvis du åbner filen op, vi vil gå gennem den første øvelse sammen. Trin 1 er at overleve i Vim, og forhåbentlig jer alle har denne åbne. Godt, og vi har nogle enkle øvelser for dig at vænne sig til at bruge disse taster. HJKL virkelig synes ikke intuitiv på første, og dette er en af ​​de første blokke, at folk har under brug Vim er at bruge disse taster til at navigere rundt. Det er ikke intuitivt, men når man vænner sig til det det virkelig integreres ind i dit sind, og mange mennesker ofte befinder sig hjælp J og K i Word eller også i Chrome, og faktisk folk har skabt denne Chrome plugin kaldet Vimium som du kan bruge i Chrome eller Chromium at navigere gennem Chrome hjælp af tastaturet ved hjælp af Vim-lignende genveje så folk er meget begejstrede for det, men gå videre og prøve og bruge HJKL at navigere mellem de numre, bare så du kan blive fortrolig med, hvordan disse ting fungerer. Når du er færdig det, kan du også gå og lege med denne labyrint jeg oprettet bare for sjov, og du kan sortere i følge den stiplede linie og forsøge ikke at gå ned i væggene og forsøge at gøre det til slutningen af ​​labyrinten. Hvis du bruger genveje i Gmail eller en række forskellige applikationer du opdage, at J og K, for eksempel, er ofte bruges til at flytte op og ned, og der dybest set kommer fra Vim væsentlige, så du har J og K, og det er virkelig rart, fordi du kan flytte op og ned uden at skulle bevæge din hånd frem og tilbage fra piletasterne. Lad os nu prøve at gå ind i indsættelse mode og komme ud af indsættelse mode. Du vil bemærke, at lige nu er min markør er en stor, sort boks, og når du går ind i indsætningstilstanden bør du finde, at det bliver til en smal markør, som du er vant til. Hvis du bruger Vim i terminalen kan du ikke finde dette at være tilfældet fordi terminalen ikke støtter denne form for tynd markør, men hvis du bruger MacVim eller Gvim på Windows så skal du finde, at det bliver til en markør, og det er en virkelig hurtig visuel indikator. Det er til dig for at fortælle, om du er i normal tilstand eller indsættelse mode. Lad os gå videre og prøve at redigere denne linje. Fyld det med dine egne oplysninger eller hvad det er, og hvordan du kan gøre det er du kan flytte op til slutningen af ​​det blank, Type I at komme ind indsættelse tilstand, og du kan backspace og skriv dit navn, og når du er færdig med at skrive du kan trykke på flugt for at komme ud af indsættelse mode og du kan flytte herover Insert for at slette det, type undslippe at komme ud af indsættelse mode, og du kan skrive: w indtaste for at gemme filen. Du kan skrive på bare: w for at gemme filen. Du kan skrive på bare: q for at afslutte uden at gemme, eller du kan skrive på: WQ for at gemme og afslutte. Indrømmet, vi ikke ønsker at holde op endnu, så du kan skrive på: w. Og måske der syntes lidt ineffektive ved første fordi at flytte til det sted, du var nødt til at skrive J en masse gange, måske L en masse gange for at komme til dette sted, og du skal trykke på backspace en masse gange, og det syntes virkelig ineffektiv hvorimod der normalt ville du sikkert bevæge musen hen over der, dobbeltklik og begynder at skrive, og selvfølgelig, de ting er, når du først begynder med Vim, og du kun kender disse basale kommandoer, ja, det vil være en lille smule langsommere, men snart du lære nogle mere kraftfulde kommandoer, som vil give dig mulighed for at bevæge sig på tværs af dokumenter meget hurtigere, og du vil ikke nødt til at have denne meget besværlig brug af gentage Js og gentage Ks og Ls og så videre og så videre. Eventuelle spørgsmål indtil videre? Solid. Tilbage til PowerPoint. Nu skal vi til at indføre nogle flere kommandoer til avanceret bevægelse. Du har oplevet at skulle skrive måske L et parti eller H en masse, og her er nogle flere kommandoer, du kan bruge til at flytte rundt hurtigere. Antag, at din markør er i O ovre i nogle i "Dette er noget tekst" og her er 5 flere kommandoer, du kan bruge til at bevæge sig på tværs af linjen lettere. Så ^ og $ flytte dig til begyndelsen og slutningen linje, og på et tidspunkt, når du lærer regulære udtryk eller andre forskellige ting du opdage, at disse slags konventioner er meget almindelige. Den ^ generelt refererer til begyndelsen af ​​linjen. De $ henviser sædvanligvis til slutningen af ​​linjen. Disse er meget let at huske, og på samme måde, b, e og w, de er nemme at huske så godt, fordi B svarer til at bakke eller begyndelsen e svarer til den ende, som er i slutningen af ​​ordet, og w svarer til det næste ord, så w for ord. Og hvis du holder skrive e eller beholde skrive w du mærke, at du kan springe mellem ord, og det er meget hurtigere end bare at skrive l.. Nu, den næste ting er operatør-Motion Model. Dette er faktisk en af ​​de vigtigste grunde til, at Vim kan være så stærke, og det er fordi du hovedsageligt kan komponere forskellige elementer til mere kraftfulde funktioner, så generelt når du gør noget i Vim du kan tænke på det som kombinerer en operatør med en bevægelse. Indtil videre har vi lige behandlet bevægelser, ligesom HJKL. De bevæger dig rundt, og derefter b og w, de også bevæge dig rundt forskellige måder, men vi har ikke gået endnu at være i stand til at slette ting eller ændre ting eller whatnot, og når du kombinerer operatører med bevægelser, så du er i stand til at have meget kraftigere virkning, så for eksempel, hvis jeg ønskede at slette 2 ord, jeg kan bruge d for sletning operatør, og jeg kan tilføje en 2 at angive, at jeg ønsker at slette 2 ord, og så vil jeg inkluderer en bevægelse. Jeg kunne omfatte w at sige slette 2 ord. Jeg kunne bruge noget som J at sige slette nedadgående 2 gange og slette 2 linjer under mig. Jeg kunne sige d2b at slette baglæns to gange, og der er endnu flere bevægelser end dem, som jeg har vist her til virkelig, virkelig gøre dit Vim redigering meget mere kraftfuld. Disse er nogle af de mest populære, eller de mest almindelige operatører og er temmelig let at huske så godt. D for delete c for forandring. C er stort set præcis det samme som forandring, bortset fra at når du bruger c du automatisk få lagt bagefter i insert mode. Normalt når du bruger sletning du bruge den fra normal tilstand, og efter du har slettet noget, du bo i normal tilstand. Men hvis du ønsker at ændre noget, kan du bruge c at slette noget, og derefter straks gå ind i indsætningstilstanden så du kan begynde at skrive og ordne noget. Y er narrer. Det er dybest set Vim opfattelse af kopiering. For eksempel, hvis jeg ønsker at kopiere de næste 2 ord, jeg kan gøre y2w eller noget lignende, og v er for at fremhæve det væsentlige. Og også, hvad der er virkelig cool er, hvis du skriver en operatør to gange Det vil handle om en hel linje, så hvis jeg ønsker at slette en hel linje Jeg kan skrive dd at slette hele linjen, eller hvis jeg ønsker at kopiere hele linjen jeg kan bruge yy eller noget lignende. Lad os prøve denne lidt mere. Der er en øvelse her for et avanceret bevægelse operatør samt og endda nogle andre ting, jeg har ikke tænkt mig at dække i PowerPoint i dag, men du kan føle dig fri til at kigge over dem senere og lege med dem og blive fortrolig med dem. Operatører og bevægelser. For eksempel antage, der er disse 2 ord, du bare ønsker at slette i sætningen. Hvad du ønsker at gøre, er, du ønsker at sikre, at din markøren er ved begyndelsen af ​​det første ord, du vil slette, og du kan skrive i d2w, og det vil slette disse 2 ord til dig. Og ved hjælp af netop dette kommando, d2w, kan synes en smule besværligt og meningsløst, men det er meningen at udtrykke ideen at du kan komponere disse forskellige ting, og også i tilfælde du kommer til at være i den situation, så kan du ende med at bruge DW eller d2w, som jeg bruger en gang imellem. Dd og cc bruger jeg meget oftere, fordi du kan handle på hele linjer. For eksempel, lad os sige, at jeg har denne tilfældige liste her, og måske jeg ønsker at slette den linje, der siger Huskies fordi det ikke passer, bare fordi, og jeg vil ikke have det til at gå ind i indsætningstilstanden bagefter. Jeg ønsker at slette den, i hvilket tilfælde jeg kunne skrive dd, og det vil slette hele linjen. Men lad os sige nu er der denne anden linje, som jeg ønsker at slette, men jeg ønsker også at ordne det og omskrive det, i hvilket tilfælde jeg vil prøve noget som cc, og der sletter hele linjen, men sætter mig i indsætningstilstanden, som du kan se, og jeg kan ordne det derfra. Og der er mange, mange forskellige måder, du kan kombinere operatører og bevægelser, og som du bruger Vim mere og mere du lærer mere om forskellige måder du kan bruge disse kommandoer, og du vil blive bedre og bedre. Awesome, nu her er nogle andre assorterede kommandoer der også er meget, meget almindeligt brugt og vil også hjælpe dig med at blive bedre til Vim. For eksempel talte vi om små bogstaver v for visuel fremhævning. Vi kan også bruge store bogstaver V for visuel linje fremhæve. På den måde kan du fremhæve hele linjer ad gangen meget lettere. Du kan bruge o, når du er i normal tilstand til stort set indsætte en ny linje under den linje, du er her og sætte det ind indsætningstilstanden at begynde at skrive. Du kan bruge små bogstaver x for at slette det tegn, der er i øjeblikket under markøren. Du kan også bruge u til at fortryde, som er form for nice, og du kan bruge kapital A skal føjes til slutningen af ​​den aktuelle linje, så måske din cursor er et sted på linjen, og du ønsker at tilføje til slutningen af ​​linjen. Derefter kan du skrive kapital A til straks at springe til slutningen af ​​linjen og gå ind indsættelse tilstand, så du kan føje til slutningen af ​​linjen. Jeg tror, ​​jeg har nogle flere øvelser for det, som vi kan afprøve. Faktisk, nej, det gør jeg ikke. Ikke for dem. Men vi har nogle flere øvelser for næste afsnit, som vi vil se. Men disse kan du prøve dig selv så godt. For eksempel, hvis du skriver i regelmæssig v, får du regelmæssig fremhævning, som du er vant til at lide det. Hvis du skriver i kapital V, kan du få fuld linje fremhæve sådan, eller hvis jeg skriver i o det dybest set vil åbne en ny linje for mig, hvilket er lidt rart. X Jeg kan bruge til at slette tegn på markøren. Jeg kan trykke x en masse gange og slette ting. Jeg kan trykke på u for at fortryde alt det der. A, jeg kan skrive i en til straks at gå til slutningen af ​​linjen, og jeg også inkluderet et par andre gode taster at du også kan se på efter præsentationen for at lære nogle andre kommandoer. [Studerende] Hvad udskiftning om? [Brandon L.] Udskiftning er også virkelig cool og dybest set, hvis du går et sted- har du nogensinde-folk ikke rigtig bruge det så meget længere i disse dage, men har du fyre nogensinde har set i Microsoft Word, hvis du skriver insert du pludselig gå ind i denne mærkelige tilstand, hvor hver enkelt tegn, du skriver dybest set erstatter den næste karakter? Jeg ved ikke, hvis du fyre nogensinde har set det. Dette svarer til det. For eksempel, hvis jeg ønsker at overskrive, hvad jeg har i øjeblikket en eller anden grund Jeg kan skrive i kapital R og jeg vil nu være i erstatte tilstand som du kan se i nederste venstre. Hvis jeg skriver ting overskriver ting, og jeg kan også backspace, som er form for cool, og jeg kan fortryde det. Jeg kan ikke bruge det meget ofte, men nu og da det bliver handy. Lad os tale om tekstobjekter, som er en af ​​mine foretrukne ting om Vim, helt ærligt. Tekstobjekter er dybest set dette begreb at definere en slags bid af tekst inde i din tekst-fil, og jeg vil gå over disse taster først, og så vil jeg give dig nogle demonstrationer for dig til mere fuldt ud at forstå, hvad det betyder. W refererer til et ord, ligesom en tekst objekt som et ord, så nogle ord, som du normalt kender det, og hvis der er tegnsætning, der er ved siden af ​​ordet så vil det ikke omfatter tegnsætning almindelighed. Men for eksempel, hvis du ønsker at medtage tegnsætning eller anden grund eller du laver noget, der er ikke er engelsk, og du vil medtage alle de tegn, der er afgrænset af mellemrum du kan også bruge kapital W til at få alt det, der er omgivet af mellemrum. Du kan også bruge parenteser til at henvise til en tekst objekt der er inde i et sæt parenteser. Du kan gøre det samme med kantede parenteser, vinkelbeslag, seler, og citater samt, og endelig, du kan også bruge t for at henvise til nogle tag. Lad mig vise dig, hvordan det faktisk spiller ud. For eksempel, dette er min allerførste eksempel i min showcase. Der er nogle ord i denne sætning, som jeg ønsker at ændre, og vi talte om W blive brugt som en bevægelse, men du kan også bruge det som et tekstobjekt som så. For eksempel er en måde jeg kunne ændre Barack navn eller dybest set ændre det er jeg kunne gå til begyndelsen af ​​dette ord og type i C for forandring og w for ord, og det vil slette hele ordet og sætte det ind indsættelse mode. Men det er meget irriterende for mig at have til at gå til begyndelsen af ​​ordet hele tiden. Det er virkelig irriterende. Jeg ønsker ikke at have til at gøre det. Jeg kan faktisk være hvor som helst inde i hans navn og skriv CIW, og jeg står for indre, så hvis jeg skriver i CIW det står for forandring i et ord, eller med andre ord, ændre ordet Jeg er i øjeblikket inde, og det vil give dig den nøjagtige samme effekt. Du kan rette det. Tilsvarende måske har jeg nogle tilfælde som dette hvor en eller anden grund er der nogle skilletegn eller sådan noget, eller der er nogle tegnsætning, og jeg ønskede at slette det hele. Hvis jeg skriver i CIW det vil slette, hvad der er inde i disse afgrænsere, men jeg ønsker at få det hele, der er omgivet af mellemrum, så jeg kan bruge CIW til at slette det hele. Jeg vil skrive i fem, gøre de samme ting, og skriv i seks. Tilsvarende, hvis jeg ønsker at ændre noget, der er i parentes Jeg kan skrive i ci) for at slette alt, hvad der er i parentes og derefter udfylde, hvad jeg ønsker at gøre, ligesom int argc, uanset hvad du ønsker at gøre, og på samme måde, det samme med citater. Jeg kan ordne tekst, der er inde i anførselstegn, og jeg kan også ændre ting, der er inde i tags. Giver det mening? En anden ting du kan gøre, er at du ikke behøver at bruge ca. Du kan også bruge d, hvis du ønsker at slette, hvad der er inde i disse tags. Hvis jeg ønsker at slette tekst i et tag, jeg kan bruge DIT at slette dette tag. Jeg kan også bruge vit at fremhæve, hvad der er inde i tag, for eksempel. Den anden ting er i stedet for at bruge jeg i midten, du kan også bruge en, som står for alt, så husk hvis du bruger jeg den vil henvise til teksten objekt eller bruge en tekst objekt, der er indeholdt i de skilletegn, men hvis du bruger en det vil omfatte, at tekst såvel som afgrænser sig selv. For eksempel, hvis jeg ønsker at fremhæve denne tekst og den omkringliggende tag Jeg kan bruge moms, v for visuel højdepunkt, en for alle, og derefter t for tag. Du kan gøre sådan noget så godt. Måske jeg vil slette denne google.com med anførselstegn omkring det så godt, og jeg kan bruge noget som da "for at slette det hele, for eksempel. Eventuelle spørgsmål indtil videre? Jeg indser, at jeg dumping på dig en masse Vim kommandoer på én gang, og det er dybest set, fordi jeg ønsker at udsætte dig for alle de forskellige kommandoer og give dig en introduktion til, hvad disse kommandoer gør i Vim. Men hvad der kommer til at ske, er, når du går tilbage du er nødt til at langsomt at opfange disse kommandoer én efter én. Du ønsker ikke at overvælde dig selv, fordi det er for overvældende. Hvis du ønsker at afhente Vim hvad du har virkelig gøre, er starte med det første grundlæggende sæt, og jeg har brudt den op i lektioner for dig at gøre det lettere for dig at følge, og prøv og mestre hvert sæt af kommandoer én efter én, én ad gangen. Det er for meget at gøre alting på én gang, så hvad du skal gøre, når du går tilbage er gå til den første lektion, som er HJKL, indsætningstilstanden, flygte ind i normal tilstand, og gemme og holde op, og det er alt, hvad du virkelig har brug for at overleve i Vim, og få virkelig, virkelig komfortabel med det. Og efter et par dage, når du er meget komfortable med, at skal du gå videre til de mere avancerede motion operatører, de mere avancerede bevægelser, og at operatørerne og så videre og så videre. Jeg ved, jeg går igennem en masse, men jeg ønsker at få dig udsat for en masse forskellige ting. Men hvis du er klar til udfordringen, kan jeg vise dig hvordan du kan sætte det hele sammen ved hjælp af de fleste af hvad vi lige har lært i dag, og du kan også følge med, hvis du ønsker, men jeg skabt nogle tilfældige motion. Antag at vi har en slags vagtplan som denne hvor du har disse blokke med folks navne, huse, år, samt koncentration og whatnot, og du ønsker at tilføje en ny post til dig selv. Hvad er den bedste måde for dig at gøre dette? Lad os gøre det på denne måde. Hvorfor ikke vi først fremhæve denne blok. Du kommer til at vælge det, og vi kan trykke y for at rykke det, så nu kan vi stort set kopiere og indsætte denne skabelon først uden at skulle omskrive det hele fra bunden. Nu vil jeg trykker j ned en masse gange for at gå ned, og jeg vil trykke p for at indsætte det. Måske vil jeg tilføje nogle ekstra linjer for et rum, og lad os nu sige jeg ønsker at ændre dit navn til nogen. Så kan jeg gå her og skriv C2W som før for at ændre dette navn. Bob Jones, hvem ved. Måske hvis jeg ønsker at ændre det hus jeg kan gå ind i midten her og skrive i CIW og sætte Cabot House. Her kan være et eksempel på, hvor du måske ønsker at overveje at bruge udskiftning tilstand for at ændre din eksamen år, hvis du ønsker, eller vi kan også bruge CIW så godt. Det betyder ikke noget. Måske du ønsker at ændre din store. Og det er, hvad du gør. Og måske vil jeg give dig en demonstration af, hvad jeg kan gøre hvis jeg var, hvis du fortsætter med at lære mere avancerede kommandoer i Vim fordi vi næppe ridse overfladen her, og jeg kunne gøre denne slags redigering endnu hurtigere end jeg har vist dig her fordi jeg ved flere kommandoer, som jeg ikke har fået en chance for at vise dig for i dag. For eksempel, hvis jeg ønsker at understrege dette kan jeg gøre det sådan, flytte ned. Jeg har tilføjet min egen kortlægning dybest set automatisk at fremhæve ting for mig og jeg kan-jeg ved det ikke. Jeg mener, dette er bare at forsøge at vise dig, at du kan virkelig, virkelig begynde at redigere tingene hurtigere, især når du har alle disse forskellige områder, og normalt, hvad du kan gøre er en slags for at klikke og fremhæve og derefter skrive. Du kan gøre alt på én gang, kopiere og indsætte, bevæger sig op og ned mellem filen, bare afgrænsning ting, formatering ting. Alt dette kan gøres meget, meget hurtigere i Vim. Bare en sidste lille ting, som jeg mener kan være virkelig rart, som er at finde og erstatte. De af jer, der har brugt Gmail genveje vil du også vide, at hvis du skriver i / det sender dig til søgefeltet og i en masse forskellige applikationer i almindelighed vil du opdage, skråstreg eller måske kontrollere skråstreg eller noget at gøre med skråstreg vil sætte dig ind i en slags søgefunktion, og som også dybest set kommer fra Vim væsentlige fordi skråstreg operatør eller skråstreg kommandoen tillader dig at indtaste en slags snor, som du kan bruge til at søge i dokumentet. Du kan n og kapital N til at gå til den næste eller forrige forekomst, og du kan også bruge noget lignende til at søge og erstatte i dokumentet. Jeg vil give dig en demonstration på, hvad der kan gøres. Måske hvis jeg ønsker at finde alle forekomster af strengen ryk i dette dokument Jeg kan skrive i / ryk, som du kan se i nederste venstre hjørne, og når jeg skriver indtaste det fremhæver alle forekomster. Jeg kan bruge stort set n for at springe frem og tilbage mellem alle de forskellige instanser, og lad os antage, jeg ønsker at søge og erstatte ryk med nogle tilfældige ord det er også i dokumentet. Jeg kan trykke på: at begynde at skrive i en slags kommando inden Vim, en kommando, der er mere sofistikeret end at flytte rundt eller slette eller noget lignende. Jeg vil skrive i%-tegnet til at henvise, at jeg vil bruge denne substitution kommando på hele dokumentet. Indtast s for substitution. Dette kommer fra PEARL væsentlige. Og det næste kommando er en temmelig standard kommando, som du finder i PEARL i stedet og i andre programmeringssprog som du vil sandsynligvis begynde at lære, som du gør mere datalogi, og jeg kan stort set bruge / til at skrive en / skrive i det ord, jeg ønsker at finde og erstatte og skriv derefter en anden / og skrive i uanset ord, jeg ønsker at erstatte ordet med. Hvem ved, måske NyanCat. Jeg gør det, og så vil du se, at alt fik udskiftet. Men du vil bemærke, at der er dette ord her. Anden grund nogle af vores tilfælde af ryk erstattes, men ikke alle, og det er fordi den måde, denne form for sprog er blevet skrevet ikke kun i Vim, men andre steder er, at når du kører substitution kommando det vil kun erstatte den første forekomst af dette ord i hver linje, så hvis jeg vil faktisk erstatte alle forekomster af ordet på hver enkelt linje så er jeg nødt til at gøre det samme, men tilføjer ag flag til allersidst, der står for global, og så vil det faktisk erstatte alle forekomster. Og når du lære de regulære udtryk, der er faktisk en CS50 seminar om regulære udtryk, så hvis du er nysgerrig regulære udtryk du kan også tage dette seminar og lære mere. Men for eksempel, lad os sige, at jeg har en liste med navne som dette, og jeg ønsker at omarrangere det, så i stedet for at have efternavn, komma, fornavn Jeg vil omarrangere det, så det siger fornavn, plads, efternavn. Du kan faktisk bruge denne kommando lige her det væsentlige gøre det for dig, så du kan se her vi starter med et s, hvilket betyder, at vi ønsker at gøre en søg og erstat, og så har jeg tilføjet et flag kaldet \ v, der er noget der hedder denne magiske flag i Vim der tillader dig at gøre regulære udtryk nemmere. Så derfra vi dybest set passer til en enkelt linje der er i form af et sæt af ord, komma, mellemrum og et sæt af ord eller et sæt af bogstaver. \ W + dybest set betyder et eller flere tegn, og parenteser bruges til at fange disse grupper så jeg kan henvise til dem senere. Som du kan se, når disse capture 2 blokke af ord der er adskilt af et komma, rum så hvad vi ønsker at erstatte det med, er jeg bruger \ 2 og \ 1 at vende tilbage til de ord, der blev taget til fange i selve find-kommando, og så \ 2 henviser til hvad der er indeholdt i det andet sæt parenteser, \ 1 henviser til hvad der er indeholdt i den første sæt parenteser, og som du kan se, jeg lægger 2 før 1. adskilt af et mellemrum at forsøge at flytte fornavn før efternavn. Giver det mening? Og hvad jeg kan gøre, er at jeg kan skjule disse først, så jeg kun køre denne kommando på disse linjer, og så vil jeg skrive i denne kommando. Du kan se, det gør nøjagtigt som delt. Og igen, det er næppe ridse overfladen, og hvis du går til regulære udtryk seminaret så er jeg sikker på du vil lære en masse flere forskellige ting, du kan gøre med regulære udtryk, og det dybest set begynder at antyde, hvad du virkelig kan gøre med Vim hvis du virkelig begynder at blive en mester i det. Måske du ønsker at refactor noget, og du ønsker at finde alle forekomster af en funktion, der følger en slags navngivning mønster. Du ønsker at ændre den måde, der er opkaldt efter. Du kan skrive en slags kommando som denne til at gøre det for dig, og det er den slags fleksibilitet, du kan få inden Vim at du bare ikke kommer til at få i andre teksteditorer. Der dybest set dækker alle de ting, jeg ønskede at lære dig i dag i dagens seminar, men igen, jeg virkelig ønsker at understrege, at hvis du ønsker at afhente Vim det er rigtigt, at der er en lidt højere indlæringskurve i starten. I starten vil du være lidt mindre produktive end du sandsynligvis vil være anderledes, men hvis du holder dig med det inden for et par dage eller et par uger, afhængigt af hvor hurtigt du lærer, du bliver meget, meget hurtigere, og jeg forsøgte at give dig en demonstration om, hvad Vim er i stand til, men jeg fik ikke rigtig en chance for at vise dig hvad der sker, når jeg normalt-for eksempel i klassen jeg skriver i mine notater med Vim. Det er fordi jeg kan arbejde så meget hurtigere i Vim, end jeg kan med ethvert andet program. Det er bogstaveligt talt en 2 eller 3 gang produktivitet stigning i Vim i forhold til andre programmer, ikke kun med den hastighed tekstredigering, men også i den måde, jeg kan flytte rundt i dokumentet og den måde, jeg kan få adgang til andre filer på min computer og hoppe imellem dem, og så videre og så videre. Det er bare en rigtig, rigtig stor produktivitet boost. Men når du lærer, du ønsker at sikre, at du lærer en ting ad gangen, og prøv ikke at overvælde dig selv med alt for mange forskellige kommandoer fordi der er en masse kommandoer og en masse forskellige genveje kan du lære i Vim. Du ønsker at afhente en lidt ad gangen og i årenes løb efterhånden samle en større og større forståelse af Vim. Hvis du ønsker at fortsætte med at lære mere, disse er nogle af de mere avancerede emner du kan fortsætte med at lære om, og selv denne knap ridser i overfladen. Her er nogle populære plugins, du kan føle dig fri til at tjekke og Google dem og lege med dem, hvis du har lyst til og bare se, hvad slags plugins er derude. Og så i slutningen af ​​denne PowerPoint, jeg medtage en masse links til forskellige ressourcer, du kan bruge til at lære af. Her er en masse forskellige links, du kan bruge til at komme i gang med Vim. De har forskellige tutorials og whatnot, og endelig, disse er nogle mere avancerede ting, du kan bruge at også tjekke ud så godt, nogle screen afstøbninger og nogle mere avancerede teknikker i Vim og også nogle forskellige dele af kildekode kan du kigge op på GitHub bare for at kigge på andre folks konfigurationsfiler eller til at se på plugins i Vim og så videre og så videre. Det er alt jeg har til dig. [CS50.TV]