[Seminar Vim] [Brandon Liu] [Harvard University] [Dit is CS50.] [CS50.TV] Vandaag gaat een inleiding tot Vim zijn. Hoeveel van jullie hebben gehoord van Vim? Wat heb je gehoord over Vim? [Student] Het lost al uw problemen. [Brandon L.] Het lost al uw problemen. Iets anders dat jullie hebben gehoord over Vim? Elke indrukken? [Student] Bijna iedereen die ik heb gesproken graag Vim gebruiken. Oh, zoete. [Student] Veel mensen die ik ken willen Vim gebruiken. Oke, dat is goed, want een heleboel mensen in CS51 beginnen te pikken Emacs omdat Emacs heeft iets betere ondersteuning voor de taal die je gaat gebruiken in CS51, en ik ben bang dat er niet genoeg mensen op Harvard gebruiken Vim, dus ik echt proberen te doen een goede baan van het stimuleren van Vim gebruik. Maar hier is een klassiek xkcd comic die jullie interessant vindt. Hebben jullie gebruikt Nano voordat op alle? Deze strip zegt Nano? Echte programmeurs gebruiken Emacs. Hey, echte programmeurs gebruiken Vim. Nee, echte programmeurs Ed die dit-je nooit willen Ed gebruiken. Het is echt, echt oud en echt slecht, en echte programmeurs gebruiken een gemagnetiseerde naald en een vaste hand. En je kunt de rest te lezen, maar het is vrij amusant. En het grappige is aan het eind. Ze zeggen: "Oh, ja, natuurlijk, er is een Emacs commando om dat te doen." Goede oude Cx Mc M-vlinder, dat is een soort van een jab bij Emacs omdat Emacs is van oudsher bekend een beetje opgeblazen te zijn en opdrachten hebben voor bijna alles, dus dat is een soort van grap voor Emacs. Wat is Vim? Vim is teksteditor een geavanceerde programmeur. Ik wil heel graag het onderscheid tussen tekst editor en iets als een document processor. Microsoft Word staat bekend als een document processor. U kunt de marges instellen, maak dingen vet, onderstrepen dingen, doorhalen dingen, van grootte veranderen en wat al niet lettertype. Een tekstverwerker doet niets meer dan alleen tekst bewerken. Letterlijk je hoeft alleen tekens. Er is geen soort van styling, maten, lettertypen, kleuren, of iets dergelijks. Alles wat je doet is het bewerken van tekst en Vim is speciaal gemaakt voor de programmering. Het heeft veel functies ingebouwd voor de programmering. Het is uitdrukkelijk ontworpen voor een efficiënte tekstbewerking. In het algemeen, Vim is bekend dat het in principe de snelste tekst editor u eventueel kunt gebruiken in vergelijking met een andere tekst editor die het mogelijk is. Veel van de IDE-achtige functies zijn niet gebouwd direct in Vim, dus als je een IDE hebt gebruikt en je bent gewend om dingen zoals het compileren en automatisch worden uitgevoerd of debuggen wat er in je IDE of een hele reeks van verschillende dingen Vim komt niet met die van nature, maar er is een hele reeks van plugins die u kunt gebruiken om dat soort functionaliteit toe te voegen aan Vim. Vim op zichzelf is gericht op het bewerken van tekst en doet tekstbewerking echt, echt goed. En tenslotte, het is echt aanpasbaar en uitbreidbaar, en eigenlijk Vim is rond, of Vi, die Vim is gebouwd op, is al meer dan 40 jaar, en het is een zeer, zeer diep programma, en de mensen zullen het gebruiken voor een leven en nooit echt het programma onder de knie tot zijn recht, en je zal altijd blijven leren in je leven door de jaren heen, altijd steeds beter en beter. Er is eigenlijk geen einde aan wat je kunt leren en hoeveel je kunt verbeteren met Vim, dat is echt spannend. Je wilt niet om het te bekijken als iets eng, omdat je heel erg bedreven kan worden in Vim in slechts een paar weken, maar het is als een soort continue- u kunt altijd meer te leren en meer te leren en doen dingen beter en beter, dat is een soort van spannend voor mij. Dit is een voorbeeld van wat Vim eruit ziet. Dit is niet van mij. Zie je een aantal live demonstraties op dit moment. Dit is een voorbeeld van wat Vim eruit zou kunnen zien. Wat we vandaag gaan doen is gaan we om te beginnen met  snel een showcase van wat Vim kan doen. Ik ga een paar trucjes en wat al niet doen voor jullie zodat u kunt zien waarom ik Vim zo veel en waarom mensen zoals Vim zo veel, en dan van daaruit gaan we in een zachte introductie. Eigenlijk, zal het een beetje snel, een inleiding tot Vim. Ik vraag jullie om een ​​tekstbestand te downloaden en mee te volgen met me als je kan. Dit is Vim, en hier ik gebruik MacVim, dus als jullie nog Macs wilt u misschien overwegen gebruik te maken MacVim want het is een grafische versie van Vim, hoewel de reguliere Vim, wat er in je command line, werkt prima. Ik ga u een paar willekeurige tips en trucs die u kunt gebruiken in Vim om te laten zien waarom het zo cool. Slechts een paar willekeurige dingen ga ik door te gaan. Het eerste ding is tekstobjecten, en er zijn een paar commando's rond tekst objecten, en ik eigenlijk leren welke tekst objecten zijn in meer detail later in het seminarie, maar bijvoorbeeld, laten we zeggen dat ik verwoord mijn naam verkeerd, Barndon Liu, en ik wil om het te veranderen. Alles wat ik moet doen is ergens in mijn naam en het type in de opdracht krijg mijn cursor CIW, en het zal mijn volledige naam te wissen, zet me in insert-modus, en ik kan typen op mijn naam en op te lossen. Evenzo, als ik wil iets in citaten te veranderen is er ook een commando voor. Ik kan dingen binnen citaten verwijderen. Niet meer hoeft te dubbelklikken, beweeg je hand over de muis, dubbelklikken en typ iets opnieuw U kunt alles doen, van het toetsenbord, wat het ook is. Of als alternatief, laten we zeggen dat ik dit beeld-tag in deze anchor tag. Hebben jullie bedekt HTML in de klas toch? Ja, dus misschien wil ik deze tag verwijderen, die normaal wat je hoeft te doen is moet je je muis gebruiken en zorgvuldig benadrukken precies wat u wilt verwijderen en verwijder deze. Maar in Vim dat is gewoon DIT, en kunt u deze verwijderen echt snel uitverkocht, en ik zal u uitleggen wat al die commando's betekenen en hoe je ze kunt gebruiken in een tweede. Een ander voorbeeld, Ik heb wat code hier, en laten we zeggen dat ik de code wilt laten inspringen, maar ik wil de code inspringen net binnen de haakjes, en ik kan ook de code inspringen met behulp van 3-opdrachten gebruik in principe> iB. Een ander ding dat is echt cool over Vim is een zogenaamde visuele blok bewerken. Ik weet niet of jullie ooit wilde markeren een rechthoekig blok van tekst in uw code soms in plaats van het hebben van deze vreemde soort lijn ding dat alle verschillende lijnen overspant doen. Bijvoorbeeld, in Vim kun je dat doen. Ik kan rechthoeken te markeren als dit, dat is wel cool, maar verder kan ik bewerken met die functionaliteit. Bijvoorbeeld, als ik wil een soort van prefix geven aan al onze namen Ik kan een blok te markeren en vervolgens iets toevoegen. Op dezelfde manier kan ik ook wijzen op dit blok en kies om het te verwijderen, of misschien zal ik dit blok te markeren en verander het naar D, omdat we alle artsen. Wat het ook is, kan je al die verschillende dingen te doen. Tenslotte vouwen is echt cool. Veel IDE's hebben dit waar u verschillende functies kunt vouwen uit het zicht in het geval u niet wilt zien. Stel dat ik deze bos van tekst hier, en ik wil eigenlijk niet om het te zien. Ik wil het uit het zicht te houden omdat ik het bewerken van iets anders in het bestand. Ik kan het opvouwen zodat het allemaal ingestort, en op die manier het is uit het zicht, en ik kan andere dingen die op de pagina bewerken, en dit is echt geweldig. U kunt vouwen functies en wat al niet of fold-up lessen als je het programmeren alleen maar om te voorkomen dat ze uit het zicht wanneer je ze niet bewerken, en later als je ze wilt zien je ze kan openen. En je kunt zien is alles gewoon geopend. Tabs, buffers, en ramen. Vim is vrij koel in dat normaal in een veel tekst editors kunt u slechts een bestand tegelijk bewerken, zoals in Nano, of misschien als je gebruik Kladblok of Gedit. Ik heb eigenlijk nooit gebruikt Gedit heel veel, maar in ieder geval in Notepad + + kunt u tabs, maar Vim heeft het concept van de tabbladen, buffers en ramen. Bijvoorbeeld, kunt u het openen van een aantal nieuwe tabbladen. U kunt hier zien op de top heb ik nu een heleboel tabbladen, en ik kan ze te sluiten. Verder is er dit concept van buffers, dat is het idee dat als je eenmaal een bestand hebt geopend het levend blijft in de buffer, en als je wilt echt snel naar dat bestand kan je echt snel naar binnen de buffer als goed, en bovendien, binnen een deelvenster kunt u ook uw raam opgesplitst in meerdere vensters. Bijvoorbeeld, als ik dit venster wilt splitsen in meerdere vensters U kunt hier zien dat ik dezelfde code twee keer kan hebben, en ik kan meer en meer en meer verdeeld, en op dit moment ziet het er niet zo goed want standaard Ik heb de standaard window grootte zijn soort grote dus alle anderen worden platgedrukt uit, maar normaal gesproken als ik op mijn computer en niet op deze projector Ik kan verschillende vensters te openen op hetzelfde moment, dat is erg leuk voor bewerken van meerdere bestanden tegelijk. U kunt ook dingen zoals selecteren en te vervangen, en we eigenlijk dekken die aan het seminar, dus ik zal overslaan voor nu. U kunt ook interactie met de opdrachtregel op allerlei verschillende manieren. Bijvoorbeeld, als ik een soort van lijst hier en ik wil sorteren- Ik weet het niet, voegen we een ander fruit, druif, en ik kan dit benadrukken met behulp van de highlight-functie en bel sorteren, en het zal het automatisch sorteren voor mij. Ook als je gaat om te worden bewerkt CSS, die ik neem aan dat je waarschijnlijk gaat doen voor je afstudeerproject, de meeste mensen doen, en misschien wilt u uw CSS georganiseerd door ze te sorteren in alfabetische volgorde te houden. U kunt ze ook benadrukken en te roepen sorteren, en het zal te sorteren voor u. Dit zijn enkele van de voorbeelden van de dingen die Vim kan doen, en je zult merken dat het belangrijkste ding dat ik echt wil uw aandacht vestigen op is dat ik doe alles wat via het toetsenbord, en als je in staat zijn om te zien waar mijn handen worden geplaatst je zult ook zien dat mijn handen nooit echt te verplaatsen van de startrij. Normaal gesproken als je het bewerken van tekst heb je meestal een muis gebruiken en klik rond en wat al niet, en dat soort beweging sleept je naar beneden en verspilt tijd, of misschien je beweegt tussen de startrij en de pijltjestoetsen, en dus je beweegt heen en weer zo, dat is een beetje omslachtig maar ook vertraagt ​​je naar beneden, en het ding is als je eenmaal echt goed in Vim alles wat je wilt doen is gedaan zonder dat u uw handen bewegen van het huis rij, dat is geweldig. Wacht, ik ga het openen van deze applicatie. Daar gaan we. Nu kun je zien welke commando's lopen door de lagere rechter venster. Alle functies die ik net liet zien zijn dingen die worden standaard meegeleverd met Vim, maar er is ook een groot aantal plugins die u ook kunt gebruiken het verbeteren van uw Vim ervaring. Als u de configuratie bestanden die ik opgenomen gedownload, en er zijn instructies over hoe ze te installeren in de PowerPoint en ook in de e-mail stuurde ik uit, ik heb ongeveer 40 plugins geïnstalleerd of misschien 30 plugins, en stuk voor stuk brengt extra functionaliteit aan Vim dat uw Vim-ervaring verbetert. Bijvoorbeeld, een van mijn favorieten is iets genaamd surround.vim, en het maakt in principe om te werken met de omliggende of veel gemakkelijker afbakenen karakters. Een voorbeeld, ik weet niet of jullie ooit code in LaTeX, maar LaTeX is een wiskunde zetwerk taal die wordt gebruikt om echt leuk uitziende wiskunde, en wanneer je iets om naar te kijken als wiskunde willen je het verpakken in dollartekens, en laten we zeggen dat ik typ enkele vergelijking als F = ma, en ik vergat om het te verpakken in dollartekens. Dan kan ik dit benadrukken en wikkel het in dollartekens zomaar. Als alternatief Vim kun je dingen binnen-tags verwijderen en tags en wat al niet, maar Vim verwijderen door de natuur is het niet mogelijk om tags te veranderen, dus bijvoorbeeld, ik heb dit div-tag, en ik wil upgraden naar HTML5 en gebruik een nieuwe header-tag. Ik kan verandering doen rondom tag en typ in header, en het zal automatisch veranderen voor mij. Op dezelfde manier, laten we zeggen dat we iets hebben tussen haakjes, en ik wilde dat veranderen van haakjes in beugels of iets dergelijks. Ik kan ook veranderen die echt makkelijk door te typen in c voor verandering, s voor surround, haakjes. Oh, ik denk dat ik moet het typen sneller. Haakjes en beugels of steunen, en het zal automatisch veranderen voor mij, dat is erg leuk, anders normaal gesproken is het echt lastig. Dit is echt leuk om te schakelen tussen misschien wel enkele quote en dubbele aanhalingstekens strings of iets dergelijks. Dat is een voorbeeld use case. Er is een plugin genaamd Fugitive die integreert met Git. Ik gok dat jullie misschien niet hebt gebruikt Git dat veel in CS50, maar vind je jezelf met behulp van Git meer en meer en meer, niet alleen in de klassen gedurende Harvard, maar ook op banen en wat al niet, en normaal gesproken moet je heen en weer schakelen tussen de opdrachtregel en Vim te communiceren met Git, maar er is plugins te integreren met Git vanuit Vim en ook om u zelfs extra functionaliteit geven op de top van Git. Er is iets genaamd NERDTree, die u kunt gebruiken om te verkennen het bestand structuren van binnenuit Vim. Bijvoorbeeld, kan ik open NERDTree in het rechtervenster, en kun je in principe zien willekeurige bestanden en open-geen belastingen, kijk niet naar mijn belastingen. U kunt kijken naar bestanden en wat al niet en open andere bestanden en zo verder en zo voort. En ik zal niet ingaan op deze andere plugins, dus kunnen we in principe duiken in en begint te werken op Vim, maar er zijn plugins die u toelaten om commentaar gemakkelijker, plugins waarmee u gemakkelijker in te springen tussen de bestanden, plugins die je geeft syntax controle van binnenuit Vim, dat is echt cool, en het geeft je syntax controle voor de meeste talen recht uit de doos, dingen zoals regenboog haakjes, dat is eigenlijk echt, echt cool. Laat me u een voorbeeld geven van dat recht nu. Laten we eens kijken. Hier zijn een paar willekeurige code die ik aan het schrijven was, en je zult merken dat de beugels en haakjes allemaal zijn gekleurd, en haakjes en beugels van dezelfde kleur zijn bijpassende, dat is leuk en soms verbetert de leesbaarheid van je code. Je hebt ook het automatisch aanvullen, in tabelvorm opmaak. Wanneer je iets dat je wilt alle commentaren te krijgen aan line-up hebben of wilt u een tabel in uw tekst en u wilt krijgt alles te zien als een leuke tafel, in plaats van het handmatig opmaken dat zijn er plugins die formatteert die voor u en zo verder en zo voort. De lijst gaat maar door en door en door. Ik kon uren doorbrengen met het verkennen van alle verschillende Vim plugins die er zijn, en het is ongelooflijk wat daar buiten. Eventuele vragen tot nu toe? Sweet. In dat geval gaan we beginnen spelen met Vim, en ik wil dat jullie werken met een aantal Vim met mij dus je kunt een gevoel voor te krijgen, en ik kan u begeleiden in uw eerste stappen werken met Vim omdat veel mensen krijgen overweldigd als ze Vim openen, en soms als je niet eens weet het commando om af te sluiten kun je niet eens uit van Vim, maar het is niet zo slecht. Je hoeft alleen maar een paar minuten van de begeleiding van iemand die Vim heeft gebruikt voor of naar een aantal tutorials online te lezen, en je zult op uw manier in geen tijd. Hier zijn een aantal instructies om Vim installeren als je nog niet hebt. U kunt kijken naar deze dia's na de presentatie als u meer dingen installeren. Ook, dit zijn enkele instructies voor het installeren van mijn configuratiebestanden, en je kunt ook volgen deze instructies later als je nog niet hebt. Als jullie kon ga naar deze link en download een tekstbestand. De link brengt u naar dit tekstbestand, die ik zou graag willen dat u downloaden en openen in Vim, en er zijn een heleboel oefeningen en wat al niet in daar dat je rond kunt volgen met mij en begint zich enige oefening met een aantal van de basishandelingen in Vim. Goed. Terwijl je het openen van die up ga ik een korte intro geven aan 2 echt belangrijke principes in Vim bewerken die echt belangrijk om te begrijpen voordat u een duik in Vim zijn, en dat is modale bewerken en exploitanten en moties. Ik zal modale bewerken dekken eerst, en dan zullen we exploitanten en bewegingen te dekken in een klein beetje. De eerste sleutel onderscheid tussen Vim en vrijwel alle andere tekstverwerkers van welke aard is dat Vim is een modaal redacteur, en wat dat betekent is wanneer u gebruik maakt Vim je kon in een van de vele verschillende modi. Er is de normale modus, is er insert-modus, is er visuele modus, zo verder en zo voort, en het ding is, uw toetsaanslagen te nemen op verschillende acties, nemen op andere betekenis, afhankelijk van welke modus je bent binnen Net als een voorbeeld, de normale modus is de modus waarin u zich in als je verplaatsen, en dus zou ik de sleutel J gebruiken om beneden te bewegen, maar in insert-modus, je de sleutel J gebruiken om daadwerkelijk uittypen J op het scherm, en dat is waarom veel mensen in de war raken, omdat ze niet gewend zijn wordt in verschillende modi de hele tijd, en dus zijn ze uit zullen typen dingen, en je gewend bent aan het hebben van wat je typt op het scherm verschijnen, maar in Vim misschien uw cursor beweegt over de plaats omdat u typt rare tekens, en opeens krijg je verschoven naar insert-modus, omdat je een aantal belangrijke getypt dat zet je in insert-modus, en vervolgens de tekst begint vliegen, zodat mensen in de war raken als gevolg van dat. Maar je moet bijhouden welke modus je in te houden, en als je kijkt naar de zeer onderste werkbalk van Vim er moet een indicator die u vertelt welke modus u momenteel in zijn, die nuttig zou zijn. Maar in het algemeen, de 3 belangrijkste modi die u moet weten over, er zijn slechts waarschijnlijk 6 of 7 of 8 modes of zo, maar je de meeste van je tijd door te brengen in 3. Het eerste is de normale modus. Dit is waar je het grootste deel van uw tijd. Alle toetsaanslagen worden gelogd als een soort opdracht, en zullen we leren veel van deze opdrachten gedurende de dag van vandaag. De andere modus is insert-modus, dat is waar je eigenlijk aan het typen bent dingen uit, en insert-modus is eigenlijk de mode je meestal gebruikt om. U typt iets, en het komt gewoon op het scherm, en visuele modus is iets waar je highlight kan doen. Je zag eerder waar dat soms zou ik tekst markeren en manipuleren van het op verschillende manieren, en dat is een voorbeeld met behulp van visuele modus. We zullen beginnen met de absolute basis die je nodig hebt om te overleven in Vim, en het is eigenlijk deze 7 commando's hier. Hjkl worden gebruikt om te navigeren op de file, en ze komen overeen met links, omlaag, omhoog, en rechts, en je bent vrij om de pijltjestoetsen te gebruiken ook, maar we raden u aan om hjkl gebruiken zo veel mogelijk omdat het idee is dat terwijl je aan het bewerken bent, kunt u rond het document verplaatsen zonder in te schakelen tussen de pijltjestoetsen en waar u aan het typen bent, dat is echt, echt leuk. Je wil gewoon een paar letters over te stappen. Je hoeft niet je hele hand over te verschuiven, en het is wel leuk om dat te hebben. Sommige Vim deskundigen daadwerkelijk in kaart hun pijltjestoetsen om andere functies omdat ze al hjkl, en kunnen ze hun pijltjestoetsen voor andere functies te gebruiken. Hjkl beweegt je rond terwijl je in de normale modus. Als u wilt gaan naar de insert mode en typ iets u kan ik op voor het inbrengen modus, en dat zet je in insert-modus, en kun je iets typt, en je ontsnapping typt terug naar de normale modus te krijgen van het inbrengen modus. Escape stuurt je altijd terug naar de normale modus het maakt niet uit in welke modus je in, en als je wilt vertrekken u kunt typen in: wq invoeren, en de manier waarop je kunt dit onthouden is w staat voor write, en q staat voor stoppen, dus: wq, en dikke darm loopt het commando, en dus: wq invoeren om de opdracht uit te voeren bespaart en uitgangen. Als u het bestand openen we gaan door de eerste oefening samen. Stap 1 is overleven in Vim, en hopelijk hebben jullie al deze open. Goed, en we hebben een aantal eenvoudige oefeningen voor u om te wennen aan het gebruik van deze toetsen. Hjkl echt niet lijken intuïtief op het eerste, en dit is een van de eerste blokken die men tijdens het gebruik van Vim is met behulp van deze toetsen om te navigeren rond. Het is niet intuïtief, maar als je eenmaal aan gewend het echt integreert in je geest, en veel mensen vinden zichzelf vaak met behulp van J en K in Word of ook in Chrome, en eigenlijk mensen hebben dit Chrome plugin genaamd Vimium gemaakt die u kunt gebruiken in Chrome of Chromium te navigeren door Chrome met behulp van uw toetsenbord, met Vim-achtige snelkoppelingen, dus mensen zijn erg enthousiast over, maar ga je gang en probeer en het gebruik Hjkl om te navigeren tussen de nummers gewoon zo kunt u vertrouwd te raken met hoe deze dingen werken. Als je dat af te maken, kunt u ook gaan en spelen rond met dit doolhof die ik heb gemaakt gewoon voor de lol, en je kunt een soort van volg de stippellijn en probeer niet te crashen in de muren en proberen om het te maken tot het einde van het doolhof. Als u sneltoetsen in Gmail of een aantal verschillende toepassingen gebruiken je zult zien dat J en K, bijvoorbeeld, worden vaak gebruikt om op en neer te bewegen, en dat komt eigenlijk uit Vim wezen, dus je hebt J en K, en het is echt leuk omdat je op en neer kan bewegen zonder dat u beweeg je hand heen en weer van de pijltjestoetsen. Nu laten we proberen in te gaan op het inbrengen modus en het weggaan van het inbrengen modus. U zult merken dat op dit moment mijn cursor is een grote, zwarte doos, en als je in de invoermodus je vindt dat het verandert in een smalle cursor zoals je gewend bent. Als u gebruik maakt Vim in de terminal mag u niet vinden dat dit het geval te zijn omdat de aansluiting ondersteunt dit soort dunne cursor, maar als je gebruik maakt MacVim of gvim op Windows dan moet je weten dat het verandert in een cursor, en dat is echt een snelle visuele indicator. Het is voor u om te vertellen of u bent in de normale modus of insertie-modus. Laten we verder gaan en probeer bewerken van deze lijn. Vul het in met uw eigen informatie of wat het ook is, en hoe je dat kunt doen is dat je kunt doorstromen naar het einde van de blanco, Type I om in de invoermodus, en je kunt backspace en typ uw naam, en als je klaar bent het typen kunt u op escape om uit de invoermodus en je kunt hier bewegen, het type insert te verwijderen dat, Typ ontsnappen uit te komen inbrengen, waarin u kunt typen: w in te voeren het bestand wilt opslaan. U kunt typen in slechts: w om het bestand op te slaan. U kunt typen in slechts: q om te stoppen zonder op te slaan, of u kunt typen in: wq te slaan en af ​​te sluiten. Toegegeven, we willen niet nog te stoppen, zodat u kunt typen in: w. En misschien is dat een beetje inefficiënt leek op het eerste want om naar die plek moest je type J een paar keer, misschien L een paar keer naar die plek te krijgen, en je moet op backspace een paar keer, en het leek echt inefficiënt terwijl normaal gesproken zou u waarschijnlijk Beweeg de muis over daar, dubbelklikken en begin te typen, en natuurlijk, het ding is, wanneer u voor het eerst beginnen met Vim en u alleen weet dat deze basis commando's, ja, het zal een beetje trager, maar al snel leer je wat meer krachtige commando's, die zal u toelaten om veel sneller bewegen over documenten, en je hoeft niet aan deze zeer omslachtig gebruik van hebben herhalen Js en het herhalen van Ks en Ls en zo verder en zo voort. Eventuele vragen tot nu toe? Solid. Terug naar de PowerPoint. Nu gaan we nog een paar commando's voor geavanceerde beweging te introduceren. Je hebt ervaren dat u misschien L typen een stuk of H veel, en hier zijn nog enkele opdrachten die u kunt gebruiken om sneller van bewegen. Stel dat uw cursor op de O dan in het aantal in: "Dit is een tekst," en hier zijn 5 meer opdrachten die u kunt gebruiken om zich gemakkelijker over de lijn. Dus ^ en $ verplaatsen je naar het begin en einde lijn, en op een gegeven moment wanneer je leert reguliere expressies of andere verschillende dingen je zult zien dat dit soort overeenkomsten zijn zeer algemeen. De ^ algemeen verwijst naar het begin van de regel. De $ verwijst doorgaans naar het einde van de regel. Deze zijn zeer gemakkelijk te onthouden, en evenzo, b, e en w, ze zijn ook goed te onthouden, omdat b komt overeen met een back of begin e geeft het einde, dat is het einde van het woord, en w komt overeen met het volgende woord, dus w voor woord. En als je blijft typen e of houden typen w je merkt dat je kunt springen tussen woorden, en het is veel sneller dan gewoon typen l. Nu, het volgende wat is de Operator-Motion Model. Dit is eigenlijk een van de belangrijkste redenen waarom Vim zo krachtig kan zijn, en het is omdat je in wezen kunt samenstellen verschillende elementen in meer krachtige functies, dus meestal wanneer je iets doen in Vim kun je denken aan het als het combineren van een operator met een motie. Tot nu toe hebben we net behandeld bewegingen, zoals hjkl. Ze bewegen u rond, en dan b en w, ze bewegen ook rond verschillende manieren, maar we hebben nog niet gegaan op de mogelijkheid om dingen te wissen of dingen of wat te veranderen, en als je operatoren combineren met bewegingen dan bent u in staat om zijn veel krachtiger effecten, dus bijvoorbeeld, als ik wilde 2 woorden schrappen, kan ik d gebruiken voor de verwijdering operator, en ik kan een 2 toe te voegen om aan te geven dat ik wil 2 woorden schrappen, en dan onder ik een motie. Ik kan onder w zeggen schrappen 2 woorden. Ik kon iets als J gebruiken om te zeggen verwijderen neerwaartse 2 keer en verwijderen 2 regels onder mij. Ik kon D2B zeggen achteruit twee keer te verwijderen, en er zijn nog meer bewegingen dan degenen die ik hier heb laten zien om echt, echt uw Vim editing veel krachtiger. Dit zijn enkele van de meest populaire en de meest voorkomende operators en zijn vrij gemakkelijk om zo goed herinneren. D om te verwijderen, c voor verandering. C is in principe precies hetzelfde als verandering, behalve dat wanneer u automatisch c je gebruikt krijgen in insert-modus te zetten na afloop. Normaal als je verwijdering gebruikt u het gebruiken van de normale modus, en nadat je iets wat je verblijf in de normale modus te verwijderen. Maar als je iets wilt wijzigen, kunt u gebruiken c om iets te verwijderen en dan meteen gaan in insertion mode zodat u begint te typen en repareren iets. Y is voor yanking. Het is eigenlijk Vim notie van het kopiëren. Bijvoorbeeld, als ik wil de volgende 2 woorden kopiëren Ik kan y2w of iets dergelijks te doen, en v is voor het benadrukken wezen. En ook wat echt cool is als je een operator overtypen het zal werken op een hele lijn, dus als ik wil een hele lijn verwijderen Ik kan typen dd om de hele regel te verwijderen, of als ik wil de hele lijn te kopiëren ik kan gebruiken yy of iets dergelijks. Laten we proberen dit wat meer. Er is een oefening hier voor een geavanceerde beweging exploitant en en zelfs sommige andere dingen die ik ben niet van plan te gaan in de PowerPoint van vandaag, maar u kunt later vrij om te kijken over hen voelen en spelen met hen en vertrouwd te raken met hen. Operators en moties. Stel bijvoorbeeld dat er deze 2 woorden die je gewoon wilt verwijderen in de zin. Wat je wilt doen is u zult willen ervoor zorgen dat uw cursor aan het begin van het eerste woord dat u wilt verwijderen, en u kunt typen in d2w, en het zal die 2 woorden voor u te verwijderen. En gebruik van deze exacte commando, d2w, lijkt misschien een beetje omslachtig en zinloos, maar het is de bedoeling om het idee uit te drukken dat je deze verschillende dingen kunnen samenstellen, en ook voor het geval je toevallig in de situatie, dan kun je uiteindelijk met behulp van dw of d2w, die ik gebruik af en toe. Dd en cc gebruik ik veel vaker, want je kan handelen gehele lijnen. Bijvoorbeeld, laten we zeggen dat ik deze willekeurige lijst hier, en misschien wil ik de lijn die Huskies zegt omdat het niet past verwijderen, enkel omdat, en ik wil niet dat het achteraf in het inbrengen modus gaan. Ik wil om het te verwijderen, in welk geval ik dd kon typen, en dat zal de hele regel te verwijderen. Maar laten we zeggen nu is er die andere lijn die ik wil verwijderen, maar ik wil ook om het te repareren en herschrijven, in welk geval ik iets als cc proberen, en dat wist de hele lijn, maar zet me in de invoermodus, zoals je kunt zien, en ik kan het oplossen van daar. En er zijn vele, vele verschillende manieren waarop u kunt operators en bewegingen combineren, en als je Vim gebruiken meer en meer je meer over de verschillende manieren om te leren U kunt deze opdrachten gebruiken, en je zult beter en beter te worden. Geweldig, nu hier zijn enkele andere diverse opdrachten die ook zeer, zeer vaak gebruikt en ook zal u helpen beter bij Vim geworden. Zo spraken we over kleine v voor visuele highlighting. We kunnen ook gebruik maken van hoofdletters V voor visuele lijn highlighting. Die manier kan je hele regels tegelijk eenvoudig markeren veel meer. U kunt gebruik maken o wanneer je in de normale modus om in principe een nieuwe regel onder de lijn waar je nu op en zet het in het inbrengen modus om te beginnen met typen. U kunt kleine letters x gebruiken om het karakter dat er momenteel onder uw cursor te verwijderen. U kunt ook op u om ongedaan te maken, dat is wel leuk, en je kunt hoofdletter A gebruiken om te voegen aan het einde van de huidige regel, dus misschien uw cursor ergens op de lijn, en u wilt toevoegen aan het einde van de lijn. Dan kunt u hoofdletter A typen om meteen terug naar het einde van de regel en ga in het inbrengen modus, zodat u kunt toevoegen aan het einde van de lijn. Ik denk dat ik nog een paar oefeningen voor datgene wat we kunnen uitproberen. Eigenlijk, nee, dat doe ik niet. Niet voor mensen die. Maar we hebben wat meer oefeningen voor de volgende paragraaf waarin we zullen zien. Maar deze kun je proberen jezelf. Bijvoorbeeld, als u typt in de reguliere v, u zult regelmatig benadrukken dat je gebruikt om dit leuk te krijgen. Als u typt in het kapitaal V, kunt u de volledige lijn te markeren als dat te krijgen, of als ik typ in o het in principe zal een nieuwe lijn te openen voor mij, dat is wel leuk. X ik kan gebruiken om tekens te verwijderen op de cursor. Ik kan op x een paar keer en dingen moeten verwijderen. Ik kan op u om ongedaan te maken dat alles. A, kan ik typ in A om onmiddellijk naar het einde van de lijn, en Ik heb ook een paar andere leuke toetsen dat u ook kunt kijken naar na de presentatie aan enkele andere commando's te leren. [Student] Wat is vervanging over? [Brandon L.] Vervanging is ook echt cool en eigenlijk als je ergens onderweg heb je ooit-mensen niet echt gebruiken dat veel meer van deze dagen, maar hebben jullie ooit in Microsoft Word als je type gebruiken je plotseling gaan in deze vreemde toestand waarin elk teken dat u typt vervangt in principe de volgende teken? Ik weet niet of jullie ooit hebben gezien dat. Dit is vergelijkbaar met die. Bijvoorbeeld, als ik wil overschrijven wat ik op dit moment om wat voor reden Ik kan typen in de hoofdstad R, en ik zal nu in de modus Vervangen, zoals je kunt zien in de linkerbenedenhoek. Als ik typ dingen overschrijft deze dingen, en ik kan ook backspace, dat is wel cool, en ik kan ongedaan dat. Ik gebruik dat heel vaak, maar zo nu en dan is het handig wordt. Laten we praten over de tekst objecten, dat is een van mijn favoriete dingen over Vim, eerlijk gezegd. Tekst objecten zijn in principe deze notie van het definiëren van een soort stuk tekst in uw tekstbestand, en ik zal eerst via deze toetsen gaan, en dan zal ik je een aantal demonstraties geven voor u om beter te begrijpen wat dat betekent. W verwijst naar een woord, als een tekst object als een woord, dus sommige woord zoals u dat normaal kennen, en als er leestekens dat is naast het woord dan zal het niet de leestekens omvatten over het algemeen. Maar bijvoorbeeld als u de interpunctie of andere reden onder of je bent iets dat niet Engels te doen en u wilt opnemen alle tekens die worden afgebakend door witruimte kunt u ook hoofdletter W gebruiken om alles wat is omgeven door witruimte krijgen. U kunt ook haakjes gebruiken om te verwijzen naar een tekstobject dat is in een paar haakjes. U kunt hetzelfde doen met vierkante haken, hoekijzers, bretels, en citaten als goed, en ten slotte, U kunt ook gebruik maken van t te verwijzen naar een aantal tag. Laat me zien hoe je dat eigenlijk afspeelt. Zo, dit is mijn allereerste voorbeeld in mijn vitrine. Er is wat woord in deze zin die ik wil veranderen, en we spraken over W wordt gebruikt als een beweging, maar u kunt het ook gebruiken als een tekstobject zoals zo. Bijvoorbeeld, een manier kon ik de naam van Barack wijzigen of eigenlijk wijzigen is dat ik kon gaan naar het begin van dit woord en typ c voor verandering en w voor woord, en dat zal het hele woord te verwijderen en zet het in het inbrengen modus. Maar het is heel vervelend voor mij om te moeten gaan naar het begin van het woord de hele tijd. Dat is echt vervelend. Ik wil niet te hebben om dat te doen. Ik kan eigenlijk overal zijn in zijn naam en typ in de CIW en de i staat voor innerlijke, dus als ik typ in CIW staat het voor verandering in een woord, of met andere woorden, verander het woord Ik ben momenteel binnen, en het zal u precies hetzelfde effect te geven. U kunt repareren. Ook, misschien heb ik een aantal geval als dit waar een of andere reden zijn er een aantal afbakeningen of iets dergelijks, of is er een aantal leestekens, en ik wilde de hele zaak te verwijderen. Als ik typ in CIW zal verwijderen wat er binnen deze begrenzers, maar ik wil de hele zaak, dat is omgeven door witruimte te krijgen, dus ik kan CIW gebruiken om de hele zaak te verwijderen. Ik type in vijf, hetzelfde doen, en typ in zes. Evenzo, als ik wil iets dat tussen de haakjes te veranderen Ik kan typen in ci) om alles wat tussen de haakjes te verwijderen en vervolgens in wat ik wil doen vullen, zoals int argc, wat je wilt doen, en evenzo hetzelfde met citaten. Ik kan de tekst dat er binnen citaten vast te stellen, en ik kan ook dingen die binnenkant van labels wijzigen. Is dat logisch? Een ander ding dat je kunt doen is dat je niet hoeft te gebruiken c. U kunt ook gebruik maken van d als u wilt verwijderen wat er in deze tags. Als ik wil de tekst in een tag te verwijderen kan ik zegt gebruiken om die tag te verwijderen. Ik kan ook gebruik maken van vit te benadrukken wat er in de tag, bijvoorbeeld. Het andere ding is in plaats van het gebruik van i in het midden kunt u ook gebruik maken van een, wat staat voor alle, dus vergeet niet als je gebruik ik het zal verwijzen naar de tekst object of gebruik een tekst object dat is opgenomen in de scheidingstekens, maar als je een gebruiken zal dat zowel tekst als scheidingsteken zelf. Bijvoorbeeld, als ik wil deze tekst en de omliggende label te markeren Ik kan btw, v gebruiken voor visuele hoogtepunt, een voor allen, en dan is t voor de tag. Je kunt zoiets ook doen. Misschien wil ik dit google.com te verwijderen met de aanhalingstekens rond het ook, en ik kan iets als da "gebruiken om dat allemaal te verwijderen, bijvoorbeeld. Eventuele vragen tot nu toe? Ik realiseer me dat ik dumpen op je veel van Vim commando allemaal tegelijk, en dit is voornamelijk omdat ik wil je bloot te stellen aan alle verschillende commando's en geven u een inleiding tot wat deze commando's doen in Vim. Maar wat zal moeten gebeuren is wanneer je terug gaat je gaat te hebben om zachtjes op deze commando's een voor een. Je wilt niet om jezelf te overweldigen, want dat is te overweldigend. Als u wilt ophalen Vim wat je hoeft te doen is echt beginnen met de eerste basisset, en ik heb het opgesplitst in lessen voor u dat maakt het makkelijker voor u om te volgen, en probeer en beheersen elke set van commando's een voor een, een voor een. Het is te veel om alles tegelijk te doen, dus wat je moet doen als je wil teruggaan ga naar de eerste les, dat is hjkl, inbrengen modus, ontsnappen in de normale modus, en opslaan en stoppen, en dat is alles wat je echt nodig hebt om te overleven in Vim, en krijg echt, echt comfortabel met dat. En na een paar dagen als je eenmaal bent zeer comfortabel met dat je moet gaan naar de meer geavanceerde motion exploitanten, de meer geavanceerde bewegingen, en aan de exploitanten enzovoort, enzovoort. Ik weet dat ik veel meegemaakt, maar ik wil krijg je blootgesteld aan een heleboel verschillende dingen. Maar in het geval je bent klaar voor de uitdaging, kan ik je laten zien hoe je het allemaal bij elkaar kan zetten met behulp van de meeste van wat we net geleerd vandaag, en je kunt ook volgen langs als je wilt, maar Ik heb enkele willekeurige oefening. Stel we hebben een soort van rooster als dit waar heb je deze blokken met namen van mensen, huizen, jaar, en concentraties en wat al niet, en u wilt een nieuwe vermelding voor jezelf toe te voegen. Wat is de beste manier voor u om dit te doen? Laten we het zo doen. Waarom gaan we niet eerst benadrukken dit blok. Je gaat om het te selecteren, en kunnen we y op om het te rukken, dus nu kunnen we in principe kopieer en plak deze template eerste zonder dat het hele ding te herschrijven vanuit het niets. Nu zal ik op j beneden een paar keer naar beneden te gaan, en ik zal druk p om te plakken. Misschien zal ik wat extra lijnen voor een spatie toe te voegen, en laten we zeggen nu wil ik je naam te veranderen in iemand. Dan kan ik hier gaan en typ in c2w zoals voorheen om die naam te veranderen. Bob Jones, wie weet. Misschien als ik het huis wil veranderen kan ik in het midden hier gaan en typ in CIW en zet Cabot House. Hier kan een voorbeeld van waar u zou willen overwegen gebruik te de mode voor het vervangen uw afstuderen jaar veranderen als je wilt, of we kunnen ook gebruik maken van CIW ook. Het maakt niet uit. Misschien wilt u uw grote verandering. En dat is wat je doet. En misschien zal ik u een demonstratie van wat ik zou kunnen doen geven als ik-als u doorgaat met meer geavanceerde commando's te leren in Vim omdat we nauwelijks krassen op het oppervlak hier, en ik kon dit soort bewerking doen, zelfs sneller dan ik je hier heb laten zien omdat ik weet meer commando dat ik niet de kans om te laten zien voor vandaag hebben gekregen. Bijvoorbeeld, als ik wil dit benadrukken ik kan het zo doet, naar beneden. Ik heb mijn eigen mapping toegevoegd om in principe automatisch markeren spullen voor mij en ik kan-ik weet het niet. Ik bedoel, dit is gewoon proberen te laten zien dat je echt, echt beginnen dingen sneller bewerken, zeker als je al deze verschillende gebieden, en normaal wat je zou kunnen doen is een soort van het klikken en het benadrukken en vervolgens te typen. U kunt alles in een keer, kopiëren en plakken, op en neer bewegen tussen de file, net afbakenen spul, opmaak spul. Dit alles kan veel, veel sneller worden gedaan in Vim. Nog een laatste dingetje waarvan ik denk dat kan echt leuk zijn, dat wordt zoeken en vervangen. Degenen onder jullie die Gmail sneltoetsen hebben gebruikt zul je ook weten dat als je typt / stuurt u naar het zoekvak, en in veel verschillende toepassingen in het algemeen zul je merken dat slash vinden of misschien beheersen slash of iets te maken met slash zal je in een soort van zoekmodus en dat komt ook in principe van Vim wezen omdat de slash exploitant of de slash commando kunt u invoeren een soort van string die u kunt gebruiken om te zoeken in het document. U kunt n en kapitaal N om naar de volgende en de vorige overeenkomst, en je kunt ook iets dergelijks gebruiken om te zoeken en te vervangen in het document. Ik geef je een demonstratie op wat kan worden gedaan geven. Misschien als ik wil alle exemplaren van de string yank in dit document te vinden Ik kan typen in / yank, zoals je kunt zien in de linkerbenedenhoek, en als ik typ in te voeren wijst hij op alle instanties. Ik kan in principe n om heen en weer springen tussen al deze verschillende gevallen en stel dat ik wil zoeken en vervangen yank met een aantal willekeurig woord die ook in het document. Ik kan drukken: om te beginnen met typen in een soort van opdracht in Vim, een aantal commando's dat is meer geavanceerd dan bewegen of verwijderen of iets dergelijks. Ik zal het type in het%-teken om te verwijzen dat ik wil deze substitutie commando te gebruiken op het gehele document. Typ in s voor vervanging. Dit komt uit PEARL wezen. En deze volgende opdracht is een vrij standaard commando dat je in PEARL vindt plaats en in andere programmeertalen die u zult waarschijnlijk beginnen te leren als jij meer informatica, en ik kan in principe gebruik maken van / naar een /, typ typ het woord wil ik zoeken en vervangen en typ een andere / en typ wat word ik wil dat woord vervangen. Wie weet, misschien NyanCat. Ik dat doen, en dan zul je zien dat alles werd vervangen. Maar je zult zien dat er zich dit woord hier. Om een ​​of andere reden een aantal van onze gevallen van yank worden vervangen, maar niet alle, en dat komt omdat de manier waarop heeft dit soort taal geschreven niet alleen in Vim, maar op andere plaatsen is dat wanneer je de substitutie opdracht uitvoeren het zal alleen vervangen de eerste instantie van dat woord in elke lijn, dus als ik wil eigenlijk vervangen alle exemplaren van het woord op elke lijn dan moet ik hetzelfde doen maar voeg ag vlag aan het einde, wat staat voor globale, en dan is dat ook daadwerkelijk vervangen alle gevallen. En als je eenmaal leert de reguliere expressies, is er eigenlijk een CS50 seminar op reguliere expressies, dus als je benieuwd naar reguliere expressies zijn kunt u ook het seminar en leer meer. Maar bijvoorbeeld, laten we zeggen dat ik een lijst met namen als dit, en ik wil het herschikken, dus in plaats van het hebben van achternaam, komma, voornaam Ik wil het herschikken zodat het voornaam, ruimte, achternaam zegt. Hiermee kunt u via deze opdracht hier in wezen dat voor u doen, zodat je hier kunt zien we beginnen met een s, wat betekent dat we willen een vondst te doen en te vervangen, en toen voegde ik een vlag genaamd \ v, dat is zoiets als deze magische vlag in Vim waarmee u reguliere expressies meer gemakkelijk doen. Dan vanaf daar zijn we in essentie overeen voor een enkele lijn dat is van de vorm van een reeks woorden, komma, spatie, en een reeks woorden of een reeks brieven. \ W + betekent in feite een of meer tekens, en haakjes gebruikt om deze groepen te vangen zodat ik later naar verwijzen. Zoals je kunt zien, zodra deze capture 2 blokken van woorden die worden gescheiden door een komma, spatie dan wat we willen deze vervangen door is Ik gebruik \ 2 en \ 1 om terug te verwijzen naar de woorden die werden gevangen in de feitelijke find commando, en zo \ 2 verwijst naar wat er in de tweede set haakjes, \ 1 verwijst naar wat er in de eerste set haakjes, en zoals je kunt zien, ik ben om 2 voor 1 gescheiden door een spatie om te proberen en zet de eerste naam voor de laatste naam. Is dat logisch? En wat ik kan doen is dat ik kan verbergen deze eerste dus ik draaien alleen deze opdracht op deze lijnen, en dan zal ik typ in deze opdracht. U kunt zien dat het precies zo verdeeld. En nogmaals, dit is nauwelijks krassen op het oppervlak, en als je naar de reguliere expressie seminar dan ben ik zeker dat je leert veel meer verschillende dingen die je kunt doen met reguliere expressies, en dit begint in principe te zinspelen op wat je echt kunt doen met Vim als je echt beginnen met een meester van te worden. Misschien wilt u iets refactoren, en je wilt alle instanties vinden van een functie die een soort van naamgeving patroon volgt. U wilt de manier waarop dat is vernoemd veranderen. Je kunt een soort van commando als dit om dat voor u te schrijven, en dat is het soort flexibiliteit die u kunt krijgen binnen Vim dat je gewoon niet van plan in andere tekstverwerkers te krijgen. Dat heeft voornamelijk betrekking op alle dingen die ik wilde je leren vandaag in seminar van vandaag, maar nogmaals, ik wil echt benadrukken dat als je wilt ophalen Vim Het is waar dat er een iets hogere leercurve in het begin. In het begin zul je iets minder productief zijn dan u waarschijnlijk anders zou zijn, maar als je de stok met het binnen een paar dagen of een paar weken, afhankelijk van hoe snel je leert, je zult veel geworden, veel sneller, en ik heb geprobeerd om u een demonstratie te geven over wat Vim in staat is, maar ik heb niet echt een kans om te laten zien krijgen wat er gebeurt als ik normaal, bijvoorbeeld in de klas type I in mijn notities met Vim. Dat komt omdat ik zo veel sneller in Vim dan ik kan werken met een ander programma. Het is letterlijk een 2 of 3 keer productiviteitsverhoging Vim in vergelijking met andere programma's, niet alleen met de snelheid van tekstverwerking, maar ook in de manier waarop ik kan rond het document verplaatsen en de manier waarop ik kan toegang tot andere bestanden op mijn computer en springen tussen enzovoort, enzovoort. Het is gewoon een heel, heel groot productiviteit boost. Maar als je aan het leren bent, wilt u ervoor zorgen dat u een ding te leren op een moment, en probeer jezelf niet te overweldigen met te veel verschillende opdrachten want er zijn een heleboel commando's en een heleboel verschillende snelkoppelingen die u kunt leren in Vim. U wilt een kleine pick-up in een tijd en door de jaren heen geleidelijk vergaren van een groter en groter begrip van Vim. Als u verder wilt gaan om meer te leren, dit zijn enkele van de meer geavanceerde onderwerpen je kunt blijven leren over, en zelfs dit nauwelijks topje van de ijsberg. Hier zijn een aantal populaire plugins kun je vrij om te controleren en Google hen het gevoel en spelen met hen als u wilt en gewoon zien wat voor soort plugins die er zijn. En dan aan het eind van deze PowerPoint, omvat ik een bos van verbindingen naar verschillende middelen die u kunt gebruiken om te leren van. Hier zijn een heleboel verschillende links die u kunt gebruiken om te beginnen met Vim. Ze hebben verschillende tutorials en wat al niet, en tot slot, dit zijn enkele meer geavanceerde dingen die je kunt gebruiken ook om te controleren als goed, sommige screen casts en sommige meer geavanceerde technieken in Vim en ook een aantal verschillende delen van de broncode kunt u opzoeken op GitHub alleen maar te kijken naar andere mensen configuratiebestanden of om te kijken naar plugins in Vim en zo verder en zo voort. Dat is alles wat ik voor je heb. [CS50.TV]