[Seminario Vim] [Brandon Liu] [Harvard University] [Questo è CS50.] [CS50.TV] Oggi sarà una introduzione a Vim. Quanti di voi hanno sentito parlare di Vim? Che cosa avete sentito parlare di Vim? [Studente] Si risolve tutti i vostri problemi. [Brandon L.] Si risolve tutti i vostri problemi. Tutto il resto voi ragazzi avete sentito parlare di Vim? Impressioni? [Studente] Quasi tutti quelli che ho parlato ama usare Vim. Oh, dolce. [Studente] Un sacco di persone che conosco piace usare Vim. Ok, questo è un bene, perché un sacco di gente in CS51 cominciare a raccogliere Emacs perché Emacs ha leggermente migliore supporto per la lingua che si vuole utilizzare in CS51, e temo che non abbastanza persone a Harvard usa Vim, così ho davvero cercare di fare un buon lavoro di incoraggiare l'uso Vim. Ma qui è un fumetto xkcd classico che voi ragazzi potrebbero trovare interessante. Avete ragazzi usato Nano prima a tutti? Questo fumetto dice Nano? I programmatori veri usano Emacs. Ehi, programmatori veri usano Vim. No, i programmatori veri usano Ed è questo che-non si vuole usare Ed. E 'molto, molto vecchio e molto male, e programmatori reali utilizzare un ago magnetizzato e una mano ferma. E si può leggere il resto, ma è abbastanza divertente. E la cosa divertente è alla fine. Dicono: "Oh, sì, certo, c'è un comando Emacs per farlo." Il buon vecchio Cx Mc M-farfalla, che è una sorta di colpo a Emacs perché Emacs è storicamente noto per essere un po 'gonfio e di avere i comandi per quasi tutto, in modo che è una sorta di scherzo per Emacs. Che cos'è Vim? Vim è editor di testo di un programmatore avanzato. Ho molta voglia di fare la distinzione tra editor di testo e qualcosa di simile a un processore documento. Microsoft Word è noto come un alimentatore di documenti. È possibile impostare i margini, le cose grassetto, sottolineato le cose, sciopero attraverso le cose, cambiare la dimensione del carattere e quant'altro. Un editor di testo non fa niente di più che modificare il testo. Letteralmente avete appena caratteri. Non c'è nessun tipo di stile, dimensioni, font, colori, o qualcosa di simile. Tutto ciò che fai è modificare il testo, e Vim è stato realizzato appositamente per la programmazione. Ha un sacco di funzioni integrate in un solo per la programmazione. E 'progettato espressamente per un'efficiente modifica del testo. In generale, Vim si caratterizza per essere essenzialmente l'editor di testo veloce si può eventualmente utilizzare rispetto a qualsiasi altro editor di testo che è possibile. Un sacco di funzioni IDE-simili non sono costruiti direttamente in Vim, quindi se avete usato un IDE e sei abituato a cose come compilare ed eseguire automaticamente o il debug cosa c'è nel vostro IDE o tutta una serie di cose diverse Vim non arriva con quella naturale, ma c'è tutta una serie di plugin che è possibile utilizzare per aggiungere questo tipo di funzionalità per Vim. Vim da sola concentra sulla modifica del testo e fa la modifica del testo davvero, davvero bene. E, infine, è davvero personalizzabile ed estendibile, e fondamentalmente Vim è stato intorno, o Vi, che Vim si basa su, è stato intorno per oltre 40 anni, ed è un programma molto, molto profondo, e la gente lo userà per tutta la vita e mai dominare veramente il programma nella sua pienezza, e sarete sempre continuare ad imparare per tutta la vita nel corso degli anni, sempre sempre meglio. Non c'è praticamente nessun fine a quello che si può imparare e quanto si può migliorare con Vim, che è davvero emozionante. Tu non vuoi vederlo come qualcosa di spaventoso perché si può diventare molto, molto abile in Vim in poche settimane, ma è una specie di continua- si può sempre imparare di più e imparare di più e fare le cose meglio, che è una specie di eccitante per me. Questo è un esempio di ciò che Vim assomiglia. Questo non è mio. Vedrete alcune dimostrazioni dal vivo proprio ora. Questo è un esempio di ciò che Vim potrebbe essere simile. Che cosa stiamo andando a fare oggi andremo a cominciare con  una rapida vetrina di ciò che Vim può fare. Io vado a fare alcuni trucchi e quant'altro per voi ragazzi così potete vedere perché mi piace Vim così tanto e perché persone come Vim così tanto, e poi da lì andremo in una introduzione graduale. In realtà, sarà un po 'veloce, un'introduzione a Vim. Ti chiedo ragazzi di scaricare un file di testo e di seguire insieme a me, se potete. Questo è il Vim, e proprio qui sto usando MacVim, quindi se voi ragazzi avete Mac potreste voler considerare l'utilizzo di MacVim perché è una versione grafica di Vim, anche se il regolare Vim, cosa c'è nella riga di comando, funziona bene. Io vado a mostrarvi alcuni suggerimenti casuali e trucchi che è possibile utilizzare in Vim per mostrarvi perché è così cool. Solo un paio di cose a caso ho intenzione di passare attraverso. La prima cosa è oggetti di testo, e ci sono alcuni comandi intorno a oggetti di testo, e io ti insegnerò quello che in realtà il testo oggetti sono in dettaglio più avanti nel seminario, ma per esempio, diciamo che ho scritto il mio nome sbagliato, Barndon Liu, e voglio cambiarlo. Tutto quello che devo fare è ottenere il mio cursore da qualche parte nel mio nome e digitare il comando CIW, e cancellerà tutto il mio nome, mi ha messo in modalità di inserimento, e posso digitare il mio nome e risolverlo. Allo stesso modo, se voglio cambiare qualcosa dentro quotazioni c'è anche un comando per questo. Posso cancellare le cose dentro le virgolette. Non sarà più necessario fare doppio clic, passare la mano sopra al mouse, doppio clic, quindi digitare qualcosa dentro Si può fare tutto da tastiera, qualunque esso sia. Oppure, in alternativa, diciamo che ho questa tag immagine all'interno di questo tag anchor. Avete ragazzi coperto HTML in classe ancora? Sì, così forse voglio cancellare questo tag, che normalmente quello che dovete fare è che devi usare il mouse e di evidenziare con attenzione esattamente ciò che si desidera eliminare e cancellarlo. Ma in Vim che è semplicemente Dit, ed è possibile eliminare fuori molto velocemente, e ti spiego a voi ciò che tutti quei comandi significano e come li si usa in un secondo. Un altro esempio, ho qui qualche codice, e diciamo che voglio far rientrare il codice, ma voglio rientrare il codice solo all'interno delle parentesi, e posso anche rientrare il codice utilizzando 3 comandi utilizzando fondamentalmente> iB. Un'altra cosa che è veramente interessante di Vim è qualcosa che si chiama editing blocco visivo. Non so se voi ragazzi avete mai voluto evidenziare un blocco rettangolare di testo nel codice a volte invece di dover fare questo strano tipo di linea cosa che abbraccia tutte le diverse linee. Ad esempio, in Vim si può fare. Posso sottolineare rettangoli come questo, che è piuttosto fresco, ma, inoltre, posso modificare utilizzando tale funzionalità. Ad esempio, se voglio dare una sorta di prefisso per tutti i nostri nomi Posso evidenziare un blocco e poi aggiungere qualcosa. Allo stesso modo, posso anche mettere in evidenza questo blocco e scegliere di eliminarlo, o forse io evidenzio questo blocco e cambio a D perché siamo tutti dottori. Qualunque cosa sia, si può fare tutte queste cose diverse. Infine, pieghevole è davvero cool. Un sacco di IDE hanno questo dove si possono piegare diverse funzioni di visualizzazione nel caso in cui non si vuole vederli. Ad esempio, supponiamo di avere questo gruppo di testo qui, e non voglio davvero vederlo. Voglio tenerlo fuori dalla vista perché sto modificando qualcosa nel file. Posso piegare in modo è tutto crollato, e in questo modo è fuori di vista, e posso modificare altre cose che sono sulla pagina, e questo è davvero grande. È possibile piegare funzioni e quant'altro o piegare le classi quando si programma solo per tenerli fuori vista quando non li sta modificando, e poi quando si desidera vederli poterli aprire. E si può vedere che appena aperto tutto. Tabs, tamponi, e finestre. Vim è abbastanza freddo in questo normalmente in un sacco di editor di testo è possibile modificare un solo file alla volta, come nel Nano, o forse se si sta utilizzando il Blocco note o Gedit. In realtà ho mai usato Gedit molto, ma almeno in Notepad + + si può avere schede, ma Vim ha il concetto di schede, tamponi e finestre. Ad esempio, è possibile aprire una serie di nuove schede. Potete vedere qui in cima ho ora un gruppo di schede, e posso chiudere. Inoltre, c'è questo concetto di buffer, che è l'idea che una volta che hai aperto un file rimane viva nel buffer, e se si vuole navigare verso quel file molto velocemente è possibile navigare ad esso molto velocemente all'interno del buffer pure, e, inoltre, entro un riquadro si può anche dividere la vostra finestra su in più finestre. Ad esempio, se voglio dividere questa finestra su in più finestre si può vedere proprio qui che posso avere lo stesso codice due volte, e posso dividere sempre di più e di più, e in questo momento non sembra che il bene perché per impostazione predefinita ho la dimensione della finestra predefinita essere una sorta di grande così tutti gli altri sono schiacciati fuori, ma di solito quando sono sul mio computer e non su questo proiettore Posso avere diversi riquadri aperti allo stesso tempo, che è veramente bello per modifica di più file allo stesso tempo. Si può anche avere le cose come selezionare e sostituire, e noi effettivamente copriamo che nel seminario, quindi salterò che per ora. È inoltre possibile interagire con la riga di comando in tutti i tipi di modi diversi. Ad esempio, se ho una sorta di lista qui e voglio ordinarla- Non lo so, aggiungiamo un altro frutto, uva, e posso sottolineare questo utilizzando la funzione di evidenziazione e chiamare ordinamento, e ordinerà automaticamente per me. Allo stesso modo, se si sta andando ad essere la modifica di CSS, che presumo che probabilmente farà per il progetto definitivo, la maggior parte delle persone fanno, e forse volete mantenere il vostro CSS organizzata da loro ordinamento in ordine alfabetico. È anche possibile evidenziare e chiamare loro ordinamento, e li ordinare per voi. Questi sono alcuni degli esempi delle cose che Vim può fare, e si noterà che la cosa fondamentale che voglio davvero attirare la vostra attenzione è che io sto facendo tutto da tastiera, e se siete in grado di vedere dove sono collocati mie mani vedrete anche che le mie mani si muovono mai dalla riga casa. Normalmente, quando si modifica il testo di solito si deve utilizzare un mouse e clicca intorno e quant'altro, e che tipo di movimento si trascina verso il basso e sprechi di tempo, o forse si sta spostando tra la fila di casa e le frecce, e così si sta muovendo avanti e indietro così, che è un po 'ingombrante ma anche si rallenta, e la cosa è volta a ottenere veramente bravo a Vim tutto quello che vuoi fare è fatto senza dover spostare le mani dalla fila casa, che è grande. Aspetta, ho intenzione di aprire questa applicazione. Ci andiamo. Ora è possibile vedere quali comandi sono in esecuzione giù la finestra in basso a destra. Tutte le funzioni che ho appena mostrato sei cose che sono inclusi di default con Vim, ma c'è anche un gran numero di plugin che è possibile utilizzare anche per migliorare la vostra esperienza di Vim. Se avete scaricato i file di configurazione che ho incluso, e ci sono le istruzioni su come installarli in PowerPoint e anche nella mail che ho inviato fuori, ho installato circa 40 plugins o forse 30 plugin, e ogni singolo porta funzionalità aggiuntive a Vim che migliora la vostra esperienza di Vim. Ad esempio, uno dei miei preferiti è qualcosa chiamato surround.vim, e fondamentalmente permette di lavorare con circostante o delimitare molto più facilmente caratteri. Un esempio, non so se voi ragazzi mai il codice in LaTeX, ma LaTeX è un linguaggio di composizione tipografica di matematica che viene utilizzato per rendere davvero bella la matematica, cercando, e quando si vuole qualcosa da guardare come la matematica si avvolge in segni di dollaro, e diciamo che sto scrivendo qualche equazione tipo F = ma, e ho dimenticato di avvolgerla in segno del dollaro. Allora posso sottolineare questo e avvolgerlo in segno del dollaro, proprio come questo. In alternativa, Vim permette di eliminare le cose dentro i tag ed eliminare tag e quant'altro, ma Vim dalla natura non consente di modificare i tag, così per esempio, io ho questo tag div, e voglio passare a HTML5 e utilizzare un nuovo tag di intestazione. Posso fare il cambiamento tag e tipo circostante in testa, e cambierà automaticamente per me. Allo stesso modo, diciamo che abbiamo qualcosa in parentesi, e volevo cambiare la situazione da parentesi tra parentesi o qualcosa di simile. Posso anche cambiare davvero facilmente digitando c per il cambiamento, s per il surround, parentesi. Oh, mi sa che devo digitare più velocemente. Parentesi e bretelle o staffe, e cambierà automaticamente per me, che è davvero bello, altrimenti normalmente è davvero ingombrante. Questo è veramente bello per passare forse apostrofo e corde doppie virgolette o qualcosa di simile. Questo è un caso, ad esempio l'uso. C'è un plugin chiamato Fugitive che si integra con Git. Sto indovinando forse voi ragazzi non ho usato Git così tanto in CS50, ma vi ritroverete con Git più e sempre di più, non solo nelle classi di tutta Harvard, ma anche in posti di lavoro e quant'altro, e normalmente si deve passare avanti e indietro tra la riga di comando e Vim per interagire con Git, ma c'è plugin per l'integrazione con Git dal di dentro Vim e anche per darvi anche funzionalità aggiuntive sulla cima di Git. C'è qualcosa chiamato NERDTree, che è possibile utilizzare per esplorare le strutture dei file da dentro Vim. Ad esempio, posso aprire NERDTree nel riquadro di destra, e si può sostanzialmente visualizzare file casuali e le tasse aperti non, non guardano le mie tasse. Potete guardare i file e quant'altro e aprire altri file e così via e così via. E non voglio entrare in questi altri plugin, in modo che possiamo sostanzialmente tuffarsi in e iniziare a lavorare su Vim, ma ci sono plugin che consentono di commento più facilmente, i plugin che consentono di passare tra i file più facilmente, plugin che ti danno la sintassi di controllo dall'interno Vim, che è davvero cool, e ti dà il controllo della sintassi per la maggior parte delle lingue destra, fuori dalla scatola, cose come parentesi arcobaleno, che è in realtà davvero, davvero cool. Lasciate che vi faccia un esempio di quel momento. Vediamo. Ecco un po 'di codice casuale che stavo scrivendo, e si noterà che le parentesi e le parentesi sono tutti colorati, e tra parentesi e staffe dello stesso colore sono corrispondenti, che è bello e talvolta migliora la leggibilità del codice. Hai anche il completamento automatico, la formattazione tabellare. Quando hai qualcosa che si desidera ottenere tutte le osservazioni per allineare o se si vuole fare una tabella nel testo e si desidera ottenere tutto per sembrare un bel tavolo, invece di dover formattare manualmente ci sono plugin che formato che per voi e così via e così via. La lista va avanti e avanti e avanti. Potrei passare ore ad esplorare tutti i vari plugin di Vim che esistono, ed è incredibile quello che c'è là fuori. Tutte le domande finora? Dolce. In questo caso, stiamo per iniziare a giocare con Vim, e voglio che voi ragazzi di lavorare con alcuni Vim con me così è possibile ottenere una sensazione di esso, e posso guidarvi nei vostri primi passi che lavorano con Vim perché un sacco di gente ottenere sopraffatti quando si aprono Vim up, e, a volte, se non si sa nemmeno il comando per uscire si può nemmeno uscire di Vim, ma non è così male. Hai solo bisogno di un paio di minuti di guida da qualcuno che ha utilizzato Vim prima o per leggere qualche tutorial online, e sarete sulla strada giusta in poco tempo. Ecco alcune istruzioni per installare Vim, se non l'hai già. Potete guardare queste diapositive dopo la presentazione, se si desidera installare più cose. Inoltre, queste sono alcune istruzioni per l'installazione miei file di configurazione, e si può anche seguire queste istruzioni in seguito, se non l'hai già. Se voi ragazzi poteste andare a questo link e scaricare un file di testo. Il link ti porterà a questo file di testo, che vorrei di scaricare e aprire in Vim, e ci sono un sacco di esercizi e quant'altro in là che è possibile seguire in giro con me e iniziare a ricevere una certa pratica con alcune delle operazioni di base in Vim. Buona. Mentre si sta aprendo che fino ho intenzione di dare una breve introduzione a due principi veramente fondamentali in editing Vim che sono davvero importanti per capire prima di tuffarsi in Vim, e questo è l'editing e gli operatori e proposte modale. Tratterò editing modale prima, e poi vedremo gli operatori e proposte in un po '. La prima distinzione fondamentale tra Vim e praticamente tutti gli altri editor di testo di qualsiasi tipo è che Vim è un editor modale, e che cosa significa quando si sta utilizzando Vim si potrebbe essere in uno dei tanti modi differenti. Ci sono modalità normale, c'è la modalità di inserimento, non c'è modo visivo, così via e così via, e la cosa è, i tasti premuti assumere diverse azioni, assumere significato diverso, a seconda di quale modalità ti trovi A titolo di esempio, la modalità normale è la modalità che sei quando si sposta in giro, e quindi vorrei usare il tasto J per spostare verso il basso, ma in modalità di inserimento, si utilizza il tasto J per digitare in realtà fuori J sullo schermo, ed è per questo che un sacco di persone si confondono perché non sono abituati a essendo in modi diversi tutto il tempo, e così essi saranno digitando le cose, e siete abituati ad avere tutto ciò che si digita apparire sullo schermo, ma in Vim forse il cursore si muove in tutto il luogo perché si sta digitando caratteri strani, e improvvisamente si ottiene spostato in modalità inserimento, perché hai digitato qualche chiave che si mette in modalità inserimento, e poi il testo inizia a volare, così la gente si confondono a causa di questo. Ma devi tenere traccia di ciò che modo siete in, e se si guarda la barra inferiore della Vim ci dovrebbe essere un indicatore che ti dice in quale modalità si sta in, che dovrebbe essere disponibile. Ma in generale, i 3 modi principali si dovrebbe conoscere, ci sono solo probabilmente 6 o 7 o 8 modi o giù di lì, ma si spende la maggior parte del vostro tempo a 3. La prima cosa è la modalità normale. Questo è dove si trascorre la maggior parte del vostro tempo. Tutti i tasti sono registrati come una sorta di comando, e saremo imparando un sacco di questi comandi per tutta la giornata di oggi. L'altra modalità è la modalità di inserimento, che è dove effettivamente sta digitando le cose, e la modalità di inserimento è fondamentalmente il modo si è di solito abituati. Si digita qualcosa, e si tratta solo sullo schermo, e la modalità visiva è qualcosa in cui si può fare evidenziazione. Hai visto in precedenza dove a volte sarei evidenziare il testo e la manipolazione in modi diversi, e questo è un esempio utilizzando la modalità visiva. Inizieremo con le basi assolute necessarie per sopravvivere in Vim, ed è fondamentalmente questi comandi 7 proprio qui. Hjkl vengono utilizzati per navigare il file, e corrispondono a sinistra, giù, su, a destra e, e sei libero di usare i tasti freccia pure, ma abbiamo davvero consigliamo di utilizzare hjkl il più possibile perché l'idea è che, mentre si sta modificando, è possibile spostare il documento senza dover spostarsi tra i tasti freccia e dove stai scrivendo, che è molto, molto bello. Si vuole solo spostare alcuni caratteri sopra. Non dovete spostare tutta la mano sopra, ed è una specie di bello avere questo. Alcuni esperti Vim in realtà una mappa più i loro tasti freccia per altre funzioni perché hanno già hjkl, e possono usare i loro tasti freccia per altre funzioni. Hjkl si muove intorno mentre siete in modalità normale. Se si vuole andare in modalità di inserimento e digitare qualcosa è possibile premere i per modalità di inserimento, e che si mette in modalità di inserimento, e si può digitare qualcosa, e si digita fuga per ottenere dalla modalità di inserimento alla modalità normale. Fuga sempre si rimanda alla modalità normale non importa quale modalità ci si trovi, e se si vuole lasciare è possibile digitare: wq entrare, e il modo in cui si può ricordare questo è w indica la scrittura, e q sta per uscire, così: wq, e del colon esegue il comando, e così: wq Invio per eseguire il comando salva ed esce. Se si apre il file fino andremo attraverso il primo esercizio insieme. Fase 1 è sopravvissuto a Vim, e spero che voi ragazzi hanno tutti questo open. Bene, e noi abbiamo alcuni semplici esercizi per voi per abitua ad usare questi tasti. Hjkl davvero non sembra intuitivo all'inizio, e questo è uno dei blocchi iniziali che le persone hanno durante l'utilizzo Vim è utilizzando questi tasti per navigare. Non è intuitivo, ma una volta che ci si abitua ad esso si integra davvero nella vostra mente, e molte persone si trovano spesso usando J e K in Word o anche in Chrome, ed effettivamente le persone hanno creato questo plugin Chrome chiamato Vimium che è possibile utilizzare in Chrome o Chromium per navigare attraverso Chrome utilizzando la tastiera utilizzando le scorciatoie Vim-like, così le persone sono molto entusiasta, ma andare avanti e cercare di utilizzo Hjkl per navigare tra i numeri solo così si può ottenere familiare con come funzionano queste cose. Una volta terminato questo, si può anche andare a giocare con questo labirinto che ho creato solo per divertimento, ed è possibile una sorta di seguire la linea tratteggiata e cercare di non schiantarsi contro i muri e cercare di arrivare alla fine del labirinto. Se si utilizzano collegamenti in Gmail o qualsiasi numero di applicazioni diverse vi accorgerete che J e K, ad esempio, sono spesso utilizzati per muoversi su e giù, e che proviene fondamentalmente da Vim in sostanza, in modo da avere J e K, ed è davvero bello perché si può spostare su e giù, senza dover muovere la mano avanti e indietro da i tasti freccia. Ora proviamo andare in modalità di inserimento e uscire dalla modalità di inserimento. Noterete che in questo momento il mio cursore è una grande scatola, nera, e quando si va in modalità di inserimento si dovrebbe trovare che si trasforma in un cursore stretto, come siete abituati. Se stai usando Vim nel terminale non si può trovare che questo sia il caso perché il terminale non supporta questo tipo di cursore sottile, ma se si sta utilizzando MacVim o GVim su Windows allora si dovrebbe trovare che si trasforma in un cursore, e questo è un indicatore visivo davvero veloce. E 'per voi per dire se siete in modalità normale o in modalità inserimento. Andiamo avanti e provare a modificare questa linea. Compilarlo con i propri dati o qualunque cosa sia, e come si può fare è che si può spostare fino alla fine del vuoto, tipo I per entrare in modalità inserimento, e si può tornare indietro e digitare il proprio nome, e quando hai finito digitando è possibile premere Esc per uscire dalla modalità di inserimento, e si può passare qui, inserire il tipo di eliminare tale, tipo escape per uscire dalla modalità di inserimento, ed è possibile digitare: w entrare per salvare il file. È possibile digitare semplicemente: w per salvare il file. È possibile digitare semplicemente: q per uscire senza salvare, oppure si può digitare: wq per salvare e uscire. Certo, noi non vogliamo smettere ancora, in modo da poter digitare: w. E forse che sembrava un po 'inefficiente in un primo momento perché per passare a quel punto si doveva digitare J un mucchio di volte, L forse un mucchio di volte per arrivare a quel punto, e si deve premere backspace un mucchio di volte, e sembrava davvero inefficiente mentre normalmente si sarebbe probabilmente spostare il mouse sopra là, doppio clic e iniziare a digitare, e, naturalmente, il fatto è che, quando si inizia con Vim e si conosce solo questi comandi di base, Sì, sarà un po 'più lento, ma presto si impara alcuni comandi più potenti, che vi permetterà di spostare tutti i documenti molto più rapidamente, e non dovrete avere questo uso molto ingombrante di Js ripetendo e ripetendo Ks e Ls e così via e così via. Tutte le domande finora? Solid. Torna all'inizio PowerPoint. Ora stiamo per introdurre alcuni ulteriori comandi per il movimento avanzato. Hai sperimentato dover digitare magari L molto o H molto, e qui ci sono alcuni altri comandi che è possibile utilizzare per muoversi più velocemente. Supponiamo che il cursore si trova alla O sopra in alcuni in "Questo è un testo" e qui ci sono altre 5 comandi che è possibile utilizzare per spostare tutta la linea più facilmente. Così ^ e $ si sposta all'inizio e fine linea, e ad un certo punto, quando si impara espressioni regolari o altre varie cose vi accorgerete che questo genere di convenzioni sono molto comuni. Il ^ generalmente si riferisce all'inizio della riga. Il $ si riferisce generalmente alla fine della riga. Questi sono molto facili da ricordare, e allo stesso modo, b, e, e w, sono facili da ricordare anche perché b corrisponde per eseguire o all'inizio, e corrisponde alla fine, che è la fine della parola, e w corrisponde alla parola successiva, quindi w per parola. E se si continua a digitare e o continuare a digitare w si nota che si può saltare tra le parole, ed è molto più veloce di semplicemente digitando l. Ora, il passo successivo è l'operatore-Motion Model. Questo è in realtà uno dei motivi principali per cui Vim può essere così potente, ed è perché si può essenzialmente comporre diversi elementi in funzioni più potenti, così generalmente quando si fa qualcosa in Vim si può pensare ad esso come combinando un operatore con un movimento. Finora abbiamo solo affrontato con movimenti, come hjkl. Si muovono in giro, e poi b e w, anche loro si muovono altri modi intorno diverse, ma non siamo ancora andati a essere in grado di eliminare le cose o cambiare le cose o quant'altro, e quando si combinano gli operatori con movimenti allora sei in grado di avere molto più potenti effetti, quindi, ad esempio, se volevo eliminare due parole, posso usare d per l'operatore cancellazione, e posso aggiungere un 2 per indicare che voglio cancellare 2 parole, e poi includo un movimento. Potrei comprendere w dire eliminare 2 parole. Potrei usare qualcosa come J da dire eliminare ribasso 2 volte e cancellare 2 linee sotto di me. Potrei dire d2b per eliminare indietro due volte, e ci sono anche più proposte di quelli che ho mostrato qui per fare davvero il vostro editing Vim molto più potente. Questi sono alcuni dei più popolari o gli operatori più comuni e sono abbastanza facili da ricordare pure. D per cancellare, c per il cambiamento. C è fondamentalmente la stessa cosa come il cambiamento, tranne che quando si utilizza c automaticamente avere messo in modalità di inserimento dopo. Normalmente, quando si utilizza l'eliminazione si utilizza dalla modalità normale, e dopo aver eliminato qualcosa rimanete in modalità normale. Ma se si vuole cambiare qualcosa, si può usare c eliminare qualcosa e poi andare immediatamente in modalità di inserimento in modo da poter iniziare a scrivere e correggere qualcosa. Y è per yanking. E 'fondamentalmente la nozione di Vim di copia. Ad esempio, se voglio copiare i prossimi due parole posso fare y2w o qualcosa di simile, e v è per evidenziare, in sostanza. E anche ciò che è veramente interessante è se si digita due volte un operatore agirà su un'intera linea, quindi se voglio eliminare un'intera linea Posso digitare dd per cancellare l'intera riga, o se voglio copiare l'intera linea posso usare AA o qualcosa di simile. Proviamo questo un po 'di più. C'è un esercizio qui per un operatore avanzato movimento pure e anche alcune altre cose che non sto andando a coprire in PowerPoint oggi, ma si può sentire liberi di guardare oltre un secondo momento e giocare con loro e familiarizzare con loro. Operatori e movimenti. Ad esempio, supponiamo che ci siano queste due parole si vuole solo eliminare nella frase. Che cosa si vorrà fare è che si vuole fare in modo che il vostro cursore si trova all'inizio della prima parola che si desidera eliminare, e si può digitare d2w, e sarà eliminare quelle due parole per voi. E con questo preciso comando, d2w, può sembrare un po 'ingombrante e inutile, ma si suppone di esprimere l'idea che è possibile comporre queste cose diverse, e anche nel caso in cui vi capita di essere nella situazione, allora si può finire con dw o d2w, che io faccio uso di tanto in tanto. Dd e cc che uso molto più spesso perché si può agire su intere linee. Per esempio, diciamo che ho questa lista casuale qui, e forse voglio eliminare la riga che dice Huskies perché non si adatta, solo perché, e io non voglio che vada in modalità di inserimento. Io voglio cancellarlo, nel qual caso avrei potuto scrivere dd, e che eliminare l'intera linea. Ma diciamo che ora c'è questa altra linea che voglio eliminare, ma voglio anche risolvere il problema e riscriverlo, nel qual caso cercherò qualcosa di simile cc, e che elimina tutta la linea, ma mi mette in modalità inserimento, come potete vedere, e posso risolvere il problema da lì. E ci sono molti, molti modi diversi è possibile combinare gli operatori e proposte, e come si usa Vim più e più si impara di più su modi diversi è possibile utilizzare questi comandi, e ti diventerà sempre meglio. Incredibile, ora ecco alcuni altri comandi assortiti che sono anche molto, molto comunemente usati e anche vi aiuterà a diventare meglio a Vim. Per esempio, abbiamo parlato minuscolo v per l'evidenziazione visiva. Possiamo anche usare lettere maiuscole V per la linea visiva evidenziazione. In questo modo è possibile evidenziare intere righe alla volta molto più facilmente. È possibile utilizzare o quando si è in modalità normale per inserire fondamentalmente una nuova linea sotto la linea Attualmente sei su e metterlo in modalità di inserimento iniziare a digitare. È possibile utilizzare minuscola x per cancellare il carattere che è attualmente sotto il cursore. È inoltre possibile utilizzare u undo, che è una specie di bello, ed è possibile utilizzare maiuscola da aggiungere alla fine della riga corrente, così forse il cursore si trova da qualche parte sulla linea, e si desidera aggiungere alla fine della riga. Quindi è possibile digitare maiuscola per passare immediatamente alla fine della linea e andare in modalità di inserimento in modo da poter aggiungere alla fine della riga. Penso di avere un paio di esercizi per quello che possiamo provare. In realtà, no, io non lo faccio. Non per quelli. Ma abbiamo alcuni più esercizi per la sezione successiva che vedremo. Ma questi si può provare voi stessi pure. Ad esempio, se si digita regolare v, si otterrà l'evidenziazione regolare che siete abituati a come questo. Se si digita in V maiuscola, è possibile ottenere la linea completa evidenziando così, o se scrivo in o fondamentalmente si aprirà una nuova linea per me, che è una specie di piacevole. X posso usare per cancellare i caratteri sul cursore. Posso premere x un mucchio di volte e cancellare roba. Posso premere A per annullare tutto questo. A, posso digitare A per andare subito alla fine della linea, e ho incluso anche un paio di altri tasti belle che si può anche guardare dopo la presentazione di imparare alcuni altri comandi. [Studente] Qual è la sostituzione in merito? [Brandon L.] La sostituzione è anche davvero cool e in fondo se si va da qualche parte- avete mai-la gente realmente non usarlo più molto in questi giorni, ma avete voi ragazzi mai visti in Microsoft Word, se si digita inserto improvvisamente va in questo modo strano in cui ogni singolo carattere digitato in sostanza sostituisce il carattere successivo? Non so se voi ragazzi avete mai visto. Questo è simile a quella. Ad esempio, se voglio sovrascrivere quello che ho attualmente per qualche motivo Posso digitare nel capitale R, e sarò ora in modalità di sostituzione, come potete vedere in basso a sinistra. Se scrivo roba che sovrascrive le cose, e posso anche backspace, che è genere di freddo, e posso annullare tale. Io non uso che molto spesso, ma ogni tanto diventa a portata di mano. Parliamo di oggetti di testo, che è una delle cose che preferisco Vim, onestamente. Gli oggetti di testo sono fondamentalmente questa nozione di definire una sorta di blocco di testo all'interno del file di testo, e vado su questi tasti prima, e poi ti darò alcune dimostrazioni per voi di comprendere più pienamente che cosa significa. W si riferisce ad una parola, come un oggetto di testo come una parola, così una parola come di consueto lo sai, e se c'è punteggiatura che è accanto alla parola allora non includerà la punteggiatura in generale. Ma per esempio, se si desidera includere la punteggiatura per qualche motivo o si sta facendo qualcosa che non è inglese e si desidera includere tutti i personaggi che si delineano da spazi bianchi è anche possibile utilizzare il capitale W per ottenere tutto ciò che è circondato da spazi bianchi. È inoltre possibile utilizzare le parentesi per fare riferimento a un oggetto di testo che è all'interno di una serie di parentesi. Puoi fare la stessa cosa con le parentesi quadre, parentesi angolari, bretelle, e citazioni nonché, infine, è anche possibile utilizzare t per fare riferimento ad alcuni tag. Lasciate che vi mostri come che in realtà gioca fuori. Ad esempio, questo è il mio primo esempio nella mia vetrina. C'è qualche parola in questa frase che voglio cambiare, e abbiamo parlato W essere usato come un movimento, ma si può anche utilizzare come un oggetto di testo in questo modo. Ad esempio, in un modo che potrebbe cambiare il nome di Barack o fondamentalmente modificarlo è Potrei andare all'inizio di questa parola e digitare c per il cambiamento e w per parola, e che eliminare l'intera parola e metterlo in modalità di inserimento. Ma è molto fastidioso per me avere per andare all'inizio della parola per tutto il tempo. Questo è davvero fastidioso. Io non voglio avere a che fare. Posso davvero essere ovunque all'interno del suo nome e digitare CIW, e la i sta per interni, quindi se digito CIW si distingue per il cambiamento in una parola, o in altre parole, cambiare la parola Attualmente sono dentro, e vi darà lo stesso effetto. Si può rimediare. Allo stesso modo, forse ho qualche caso come questo dove per qualche motivo ci sono alcuni delimitatori o qualcosa di simile, o c'è qualche punteggiatura, e volevo eliminare il tutto. Se digito CIW si cancella quello che c'è dentro questi delimitatori, ma io voglio ottenere il tutto che è circondato da spazi bianchi, così posso utilizzare Custom Installation Wizard per cancellare il tutto. Io digito in cinque, fare la stessa cosa, e inserite in sei. Allo stesso modo, se voglio cambiare qualcosa che è dentro le parentesi Posso digitare CI) per eliminare tutto ciò che è all'interno delle parentesi e poi compilare quello che voglio fare, come int argc, quello che vuoi fare, e allo stesso modo, la stessa cosa con le virgolette. Posso risolvere testo che è dentro di citazioni, e posso anche cambiare le cose che si trovano all'interno dei tag. Ritiene che senso? Un'altra cosa che puoi fare è che non c'è bisogno di usare c. È inoltre possibile utilizzare d se si desidera eliminare ciò che c'è dentro questi tag. Se voglio cancellare il testo all'interno di un tag posso usare dit per cancellare quel tag. Posso anche usare vit per evidenziare cosa c'è dentro il tag, per esempio. L'altra cosa è invece di utilizzare i nel mezzo si può anche utilizzare un, che sta per tutti, in modo da ricordare se si usa mi farà riferimento all'oggetto di testo o utilizzare un oggetto di testo che è contenuto all'interno dei delimitatori, ma se si utilizza un includerà il testo così come delimitatore stessa. Ad esempio, se voglio evidenziare il testo e il tag circostante Posso usare IVA, v per evidenziare visivo, per tutti, e quindi t per il tag. Si può fare qualcosa di simile pure. Forse voglio cancellare questo google.com con le virgolette intorno ad esso pure, e posso usare qualcosa come da "per eliminare tutto questo, per esempio. Tutte le domande finora? Mi rendo conto che sto dumping un sacco di Vim comandi tutti in una volta, e questo è fondamentalmente perché voglio esporre a tutti i vari comandi e vi darà una introduzione a quello che fanno questi comandi in Vim. Ma quello che sta andando ad avere per accadere è quando si va indietro si sta andando ad avere per raccogliere lentamente questi comandi uno per uno. Non si vuole sopraffare te stesso, perché è troppo opprimente. Se si vuole prendere Vim quello che dovete fare è davvero Comincio con il primo set di base, e ho rotto in su in lezioni per voi che rendono più facile per voi da seguire, e cercare di padroneggiare ogni set di comandi uno per uno, uno alla volta. E 'troppo da fare tutto in una volta, così che cosa si dovrebbe fare quando si va indietro è andare alla prima lezione, che è hjkl, modalità di inserimento, la fuga in modalità normale, e il risparmio e smettere, e questo è tutto ciò che ha realmente bisogno per sopravvivere in Vim, e ottenere molto, molto bene con quello. E dopo un paio di giorni una volta che sei molto bene con quello si dovrebbe passare agli operatori di movimento più avanzati, i movimenti più avanzati, e sugli operatori e così via e così via. So che sto passando un sacco, ma voglio farti esposti a un sacco di cose diverse. Ma nel caso in cui tu sei pronto per la sfida, posso mostrarvi come si può mettere insieme tutto questo utilizzando la maggior parte di quello che abbiamo appena appreso oggi, e si può anche seguire se si vuole, ma ho creato qualche esercizio casuale. Supponiamo di avere una sorta di roster come questo dove si hanno questi blocchi con i nomi delle persone, case, anni, e concentrazioni e quant'altro, e si desidera aggiungere una nuova voce per te. Qual è il modo migliore per voi di fare questo? Facciamolo come questo. Perché non prima evidenziamo questo blocco. Stai andando a selezionarlo, e possiamo premere Y per tirare esso, così ora possiamo fondamentalmente copiare e incollare questo modello prima senza dover riscrivere il tutto da zero. Ora mi preme j giù un mucchio di volte a scendere, e io premo p per incollarlo. Forse io aggiungo alcune linee extra per uno spazio, e diciamo che ora voglio cambiare il proprio nome a qualcuno. Allora posso andare qui e digitare C2W come prima di cambiare quel nome. Bob Jones, chi lo sa. Forse se voglio cambiare casa posso andare in mezzo qui e digitare CIW e mettere Cabot House. Qui può essere un esempio di dove potreste voler considerare l'utilizzo di la modalità di sostituzione di cambiare il vostro anno di laurea, se volete, o possiamo anche utilizzare Custom Installation Wizard pure. Non importa. Forse si vuole cambiare il vostro maggiore. E questo è quello che fate. E forse ti darò una dimostrazione di quello che potrei fare se fossi, se si continua a imparare i comandi più avanzati in Vim perché stiamo a malapena graffiare la superficie qui, e potrei fare questo genere di editing ancora più velocemente vi ho mostrato qui perché so più comandi che non ho avuto la possibilità di mostrare per oggi. Ad esempio, se voglio sottolineare questo posso farlo così, spostare verso il basso. Ho aggiunto la mia propria mappatura fondamentalmente per evidenziare automaticamente roba per me e posso-non so. Voglio dire, questo è solo cercando di mostrare che si può veramente iniziare a modificare le cose più velocemente, soprattutto quando si hanno tutti questi diversi campi, e di solito quello che si potrebbe fare è una sorta di clic ed evidenziando quindi digitando. Si può fare tutto in una volta, copia e incolla, movimento su e giù tra il file, solo delimitando roba, roba di formattazione. Tutto questo può essere fatto molto, molto più rapidamente in Vim. Solo un'ultima piccola cosa che penso possa essere veramente bello, che è trovare e sostituire. Quelli di voi che hanno utilizzato scorciatoie Gmail avrete anche sapere che se si digita / ti manda alla casella di ricerca, e in un sacco di diverse applicazioni in generale, vi accorgerete che barra o forse controllare barra o qualcosa a che fare con la barra vi metterà in una sorta di modalità di ricerca, e che anche proviene fondamentalmente da Vim essenzialmente perché l'operatore barra o il comando barra consente di inserire una sorta di stringa che è possibile utilizzare per cercare all'interno del documento. Puoi n e il capitale N per passare alla successiva e l'occorrenza precedente, e si può anche usare qualcosa di simile a cercare e sostituire all'interno del documento. Ti darò una dimostrazione su cosa si può fare. Forse se voglio trovare tutte le istanze della strattone stringa all'interno di questo documento Posso digitare / strattone, come potete vedere in basso a sinistra, e quando digito entrare mette in evidenza tutte le istanze. Posso usare fondamentalmente n per saltare avanti e indietro tra tutte quelle istanze diverse, e supponiamo che voglio cercare e sostituire strappo con qualche parola a caso che è anche nel documento. Posso premere: per iniziare a digitare in una sorta di comando all'interno di Vim, qualche comando che è più sofisticato di muoversi o l'eliminazione o qualcosa di simile. Io digitare il simbolo% per indicare che voglio utilizzare questo comando di sostituzione sull'intero documento. Digitare s per la sostituzione. Questo viene da PEARL essenzialmente. E questo comando successivo è un comando piuttosto standard che troverete in PEARL e invece in altri linguaggi di programmazione che non avrai probabilmente iniziare a imparare come si fa più l'informatica, e posso praticamente usare / per digitare un /, digitare la parola che voglio trovare e sostituire e quindi digitare un altro / e digitare in qualsiasi parola voglio sostituire quella parola con. Chissà, forse NyanCat. Lo faccio, e poi vedrai che tutto ha ottenuto sostituito. Ma si noterà che c'è questa parola qui. Per qualche ragione alcuni dei nostri casi di strappo sono sostituiti, ma non tutti, e questo perché il modo in cui questo tipo di linguaggio è stato scritto non solo in Vim, ma in altri luoghi è che quando si esegue il comando di sostituzione sarà solo sostituire la prima istanza di quella parola in ogni riga, quindi se voglio sostituire effettivamente tutte le istanze della parola su ogni singola linea allora devo fare la stessa cosa, ma aggiungere il flag ag alla fine, che si distingue per il mondiale, e poi che sarà effettivamente sostituire tutte le istanze. E una volta imparate le espressioni regolari, c'è in realtà un seminario CS50 sulle espressioni regolari, quindi se siete curiosi di sapere espressioni regolari si può anche prendere quel seminario e imparare di più. Ma per esempio, diciamo che ho una lista di nomi come questo, e voglio riorganizzare, così invece di avere il cognome, virgola, nome Voglio riorganizzare così dice il nome, lo spazio, il cognome. Si può effettivamente utilizzare questo comando qui per fare in sostanza che per te, così come si può vedere qui partiamo con una s, il che significa che vogliamo fare una ricerca e sostituzione, e poi ho aggiunto un flag chiamato \ v, che è qualcosa che si chiama questo flag magia in Vim che permette di fare le espressioni regolari più facilmente. Poi da lì abbiamo praticamente abbiniamo per ogni singola linea cioè della forma un insieme di parole, virgola, spazio, e un insieme di parole o di un insieme di lettere. \ W + significa sostanzialmente uno o più caratteri, e le parentesi vengono utilizzati per catturare questi gruppi così posso fare riferimento a loro più tardi. Come si può vedere, una volta che questi cattura 2 blocchi di parole che sono separati da una virgola, spazio allora quello che vogliamo sostituirlo con io uso \ 2 e \ 1 di fare riferimento alle parole che sono stati catturati nel comando effettivo ritrovamento, e così \ 2 si riferisce a tutto ciò che è contenuto nel secondo set di parentesi, \ 1 si riferisce a ciò che è contenuto nel primo gruppo di parentesi, e come potete vedere, sto mettendo 2 prima 1 separati da uno spazio per cercare di spostare il primo nome prima del cognome. Ritiene che senso? E quello che posso fare è che posso nascondere questi primi così ho eseguito solo il comando su queste linee, e allora io digito in questo comando. Potete vedere fa esattamente come diviso. E ancora, questo è appena grattando la superficie, e se si va al seminario espressione regolare, allora sono sicuro che conoscere le cose molto di più che si possono fare con le espressioni regolari, e questo inizia sostanzialmente alludere a ciò che si può davvero fare con Vim se si inizia davvero a diventare un maestro di esso. Forse si vuole refactoring qualcosa, e si desidera trovare tutte le istanze di qualche funzione che segue una sorta di modello di denominazione. Si desidera cambiare il modo in cui sta nome. È possibile scrivere una sorta di comando come questo per farlo per voi, e questo è il tipo di flessibilità si può ottenere entro Vim che non sei solo andando ottenere in altri editor di testo. Che copre praticamente tutte le cose che volevo insegnare oggi al seminario di oggi, ma ancora una volta, ci tengo a sottolineare che se si vuole prendere Vim è vero che c'è una curva di apprendimento leggermente più alto all'inizio. In fin dall'inizio si sarà un po 'meno produttivi che probabilmente sarebbe diversa, ma se si bastone con esso nel giro di pochi giorni o poche settimane, a seconda di quanto velocemente si impara, si diventa molto, molto più veloce, e ho cercato di dare una dimostrazione su ciò che Vim è in grado di, ma non ho davvero avuto la possibilità di mostrare cosa succede quando ho normalmente, ad esempio, nella classe I tipo nei miei appunti con Vim. Ecco perché posso lavorare molto più velocemente in Vim che posso con qualsiasi altro programma. E 'letteralmente un aumento della produttività 2 o 3 volte in Vim rispetto ad altri programmi, non solo con la velocità di modifica del testo, ma anche nel modo in cui posso spostare tutto il documento e il modo in cui posso accedere ad altri file sul mio computer e saltare tra loro e così via e così via. E 'solo un davvero, davvero enorme aumento della produttività. Ma quando si sta imparando, si vuole fare in modo di imparare una cosa alla volta, e cercare di non sopraffare con troppi comandi diversi perché ci sono un sacco di comandi e un sacco di diverse scorciatoie che si può imparare in Vim. Si vuole prendere un po 'alla volta e nel corso degli anni gradualmente accumulare una comprensione sempre più grande di Vim. Se si desidera continuare ad imparare di più, questi sono alcuni degli argomenti più avanzati è possibile continuare a imparare, e anche questo tocca appena la superficie. Qui ci sono alcuni plugin popolari si può sentire libero di controllare e su Google e giocare con loro se si vuole e basta vedere che tipo di plugin sono là fuori. E poi alla fine di questo PowerPoint, includo un mazzo di collegamenti alle varie risorse che si possono usare per imparare. Qui ci sono un sacco di diversi collegamenti che è possibile utilizzare per iniziare con Vim. Hanno diversi tutorial e quant'altro, e, infine, queste sono alcune cose più avanzate si possono utilizzare di controllare anche fuori pure, alcuni calchi di schermo e alcune tecniche più avanzate a Vim ed anche alcuni pezzi diversi di codice sorgente si può cercare su GitHub basta guardare i file di configurazione di altre persone o per guardare plugin in Vim e così via e così via. Questo è tutto quello che ho per te. [CS50.TV]