[Seminario Vin] [Liu Brandon] [Harvard University] [Isto é CS50.] [CS50.TV] Hoxe será unha introdución ao Vim. Cantos de vós xa escoitou falar do Vin? O que escoitou sobre o Vin? [Estudante] El resolve os seus problemas. [Brandon L.] El resolve os seus problemas. Calquera outra cousa que vós xa escoitou falar sobre o Vin? Impresións? [Estudante] Case todo o mundo que eu falei con lle gusta usar Vim. Oh, doce. [Estudante] Unha morea de persoas que eu coñezo quere usar o Vim. Ok, iso é bo, porque unha morea de persoas en CS51 comezar a incorporarse Emacs por Emacs ten un pouco mellor apoio para a linguaxe que vai empregar en CS51, e eu me preocupo que a xente non o suficiente en Harvard usar Vin, entón eu realmente tentar facer un bo traballo de incentivar o uso Vim. Pero aquí é un cómic xkcd clásico que vostedes poden considerar interesante. Vostedes xa utilizado Nano antes en todo? Este cómics di Nano? Programadores reais usan Emacs. Hey, os programadores reais usar Vim. Non, programadores reais usar Ed que é isto, non quero nunca máis usar Ed É moi, moi vello e moi mala, e os desenvolvedores usan reais unha agulla imantada e unha man firme. E pode ler o resto, pero é moi divertido. E o curioso é que ao final. Din: "Oh, si, claro, hai unha orde Emacs para facelo." O bo e vello Cx Mc M-bolboreta, que é unha especie de un jab no Emacs porque Emacs é coñecido históricamente a ser un pouco inchado e ten comandos para case nada, de xeito que é unha especie de broma para Emacs. Que é Vin? Vin é editor de texto de un programador avanzado. Realmente quero facer a distinción entre o editor de texto e algo así como un procesador de documentos. Microsoft Word é coñecido como un procesador de documentos. Podes establecer as marxes, as cousas negra, subliñado cousas, golpear coas cousas, cambiar o tamaño da fonte e outros enfeites. Un editor de texto non fai nada máis que editar o texto. Literalmente só ten caracteres. Non hai ningún tipo de estilo, tamaños, fontes, cores, ou algo así. Todo o que fai é modificar texto, e Vin se fixo especialmente para a programación. Ten unha morea de recursos internos en só para a programación. Foi deseñado especialmente para a edición de texto eficiente. En xeral, o Vin é coñecido por ser basicamente o editor de texto rápido pode eventualmente usar en comparación con calquera outro editor de texto que é posible. Unha morea de recursos do IDE-like non son construídas directamente no Vin, por iso, se xa usou un IDE e está afeito a cousas como compilar e executar automaticamente ou depuración que está no seu IDE ou toda unha serie de cousas distintas Vin non ven con que, por suposto, pero hai toda unha serie de extensións que pode usar para engadir este tipo de funcionalidade para Vim. Vin por si só incide sobre a edición de texto e edición de texto fai moi, moi ben. E, finalmente, é moi personalizable e extensible, e, basicamente, o Vin foi en torno, ou Vin, Vin que está construído encima, foi en torno de máis de 40 anos, e é un programa moi, moi profundo, e as persoas van usalo para toda a vida e nunca realmente dominar o programa na súa plenitude, e vai sempre seguir aprendendo ao longo da súa vida ao longo dos anos, sempre facendo cada vez mellor. Basicamente non hai fin para o que se pode aprender e como pode mellorar co Vin, o que é realmente emocionante. Non quere vela como algo asustado, porque pode facer moi, moi proficiente no vin en só unhas semanas, pero é como unha especie de continuo con sempre pode aprender máis e aprender máis e facer as cousas cada vez mellor, que é moi emocionante para min. Este é un exemplo do que Vin parece. Este non é o meu. Vai ver algunhas demostracións ao vivo agora. Este é un exemplo do que o Vin pode parecer. O que imos facer hoxe é que imos comezar con  unha vitrina rápida do que o Vin pode facer. Vou facer algúns trucos e outros adornos para vós así que pode ver por que me gusta Vin tanto e por que persoas como Vin que logo, e entón a partir de aí nós imos entrar nunha introdución suave. En realidade, vai ser un pouco rápido, unha introdución á Vim. Vou pedir a vostedes a descarga dun arquivo de texto e seguir xunto comigo, se poida. Este é Vin, e aquí está a usar MacVim, por iso, se vostedes teñen Macs pode querer considerar o uso de MacVim porque é unha versión gráfica de Vin, aínda que o Vin regular, o que está na súa liña de comandos, funciona moi ben. Vou amosar-lle algúns consellos e trucos aleatorios que pode usar no Vin para amosar-lle por que é tan legal. Só algunhas cousas aleatorias que eu vou pasar. O primeiro é obxectos de texto, e hai algúns comandos en torno de obxectos de texto, e eu vou te ensinar o que realmente texto obxectos son máis detalle máis tarde no seminario, pero, por exemplo, digamos que eu escribir o meu nome mal, Barndon Liu, e quero cambiar isto. Todo o que teño que facer é buscar o meu cursor en algún lugar, no meu nome e escriba o comando CIW, e só pode eliminar todo o meu nome, me puxo no modo de inserción, e podo escribir o meu nome e resolve-lo. Do mesmo xeito, se eu queira cambiar algo dentro comiñas, hai tamén unha orde para iso. Podo borrar as cousas dentro de comiñas. Non máis ter que premer dúas veces, mover a súa man para o rato, prema dúas veces e introduza algo para atrás dentro Pode facer todo dende o teclado, sexa cal sexa. Ou, no seu lugar, digamos que eu teño esa etiqueta de imaxe dentro desta etiqueta ancora. Vós xa cuberto HTML en clase aínda? Si, talvez por iso quero borrar esa marca, que normalmente o que ten que facer é que ten que usar o rato e coidadosamente destacar exactamente o que quere eliminar e excluílo. Pero no Vin que é simplemente dit, e pode borrar-lo moi rapidamente, e eu vou explicar-lle o que todos os comandos significan e como usalos en un segundo. Outro exemplo, eu teño un código aquí, e digamos que quero para recuar o código, pero quero para recuar o código só dentro dos parénteses, e eu tamén pode recuar o código empregando tres comandos utilizando basicamente> IB. Outra cousa que é realmente legal sobre Vin é unha cousa chamada edición bloque visual. Eu non sei se vós xa quería destacar un bloque rectangular de texto no seu código, por veces, en vez de ter que facer este tipo de cousas estrañas liña que se estende por todas as liñas diferentes. Por exemplo, o Vin pode facelo. Podo destacar rectángulos como esta, que é moi legal, pero, ademais, podo editar usando esta función. Por exemplo, se eu queira dar algún tipo de prefixo para todos os nosos nomes Podo destacar un bloque e, a continuación, engadir algo. Igualmente, eu tamén podo destacar este bloque e decide excluílo, ou quizais eu vou destacar este bloque e cambia-lo para D porque somos todos os médicos. Sexa o que sexa, pode facer todas estas cousas diferentes. Finalmente, curvable é moi legal. Unha morea de IDEs teñen esa onde pode dobrar diferentes funcións fóra da vista no caso de non quere velos. Por exemplo, imos supor que eu teño ese monte de texto aquí, e eu realmente non quero velo. Quero perder lo fóra da vista, porque eu estou editando outra cousa no ficheiro. Podo dobre-la por iso é todo derrubou, e de que xeito está fóra de vista, e podo editar outras cousas que están na páxina, e iso é realmente grande. Pode dobrar-se as funcións e outros adornos ou dobrar clases cando está programando só para mantelos fóra de vista cando non está a editar-os, e máis tarde, cando quere velos, pode abri-los. E pode velo acaba de abrir todo. Tabs, amortecedores, e ventás. Vin é moi legal no que normalmente en unha morea de editores de texto só se pode editar un ficheiro de cada vez, como no Nano, ou que se está a usar o Bloc de Notas ou Gedit. Realmente nunca usei Gedit moito, pero polo menos no Notepad + + pode ter pestanas, pero Vin ten o concepto de pestanas, buffers e ventás. Por exemplo, pode abrir unha morea de novas guías. Podes ver aquí na parte superior agora eu teño unha morea de pestanas, e podo pecha-las. Ademais, hai o concepto de buffers, que é a idea de que unha vez que abriu un ficheiro permanece vivo na memoria temporal, e se quere navegar a este ficheiro moi rapidamente pode ir ata el moi rapidamente dentro do tapón, así como, e, ademais, dentro dun panel pode tamén partir a fiestra anterior en varias fiestras. Por exemplo, se quero dividir esa ventá en varias fiestras podes ver aquí que eu poida ter o mesmo código dúas veces, e podo dividir máis e máis e máis, e agora non parece tan bo porque, por defecto, teño o tamaño de xanela estándar ser unha especie de gran para que todos os outros son esmagados para fóra, pero normalmente cando estou no meu ordenador e non neste proxector Podo ter varios paneis abertos á vez, o que é moi bo para edición de varios arquivos á vez. Tamén pode ter cousas como seleccionar e substituír, e nós imos realmente cubrir que o seminario, entón eu vou saltar isto por agora. Tamén pode interactuar coa liña de ordes en todo tipo de formas. Por exemplo, se eu teño algún tipo de lista aquí e quero clasificalos lo- Eu non sei, imos engadir outra froita, uva, e podo destacar esta usando a función de destaque e chama-tipo, e que vai solucionar isto automaticamente para min. Igualmente, se está indo para a edición de CSS, o que eu presumo que probablemente estará facendo para o seu proxecto final, a maioría das persoas fan, e quizais quere manter o seu CSS organizado, clasificándose os en orde alfabética. Tamén pode destacar los e chama-tipo, e vai clasificalos los para ti. Estes son algúns dos exemplos das cousas que Vin pode facer, e vai entender que a principal cousa que eu realmente quero chamar a atención sobre é que eu estou facendo de todo, dende o teclado, e se é capaz de ver onde as miñas mans son colocadas tamén vai ver que as miñas mans nunca pasar da liña casa. Normalmente, cando está a editar texto que xeralmente ten que usar un rato e prema en volta e todo máis, e este tipo de movemento arrastra para abaixo e malgasta tempo, ou que se está movendo entre a liña de casa e as teclas de frecha, e así que se está movendo cara atrás e para adiante coma este, que é un pouco pesado pero tamén reduce a velocidade, ea cousa é cando lle queda realmente bo no Vin todo o que quere facer é feito sen ter que mover as súas mans a partir da liña de casa, o que é óptimo. Espere, eu vou abrir esta aplicación. Alí imos nós. Agora podes ver o que os mandos están correndo cara a abaixo da xanela inferior dereita. Todas as funcións que eu acaba de amosar cousas que están incluídos por defecto co Vin, pero hai tamén un número enorme de plugins que tamén pode usar para mellorar a súa experiencia Vim. Se descargou os ficheiros de configuración que eu incluído, e hai instrucións sobre como instala-los en PowerPoint e tamén no correo electrónico que enviei para fóra, eu teño preto de 40 plugins instalados ou quizais 30 plugins, e cada un trae funcións adicionais para o Vin que mellora a súa experiencia Vim. Por exemplo, un dos meus favoritos é algo chamado surround.vim, e que basicamente permite que se traballa con áreas ou delimitando personaxes moito máis facilmente. Un exemplo, eu non sei se vós xa código LaTeX, pero LaTeX é unha linguaxe de composición de matemáticas que se utiliza para facer moi bo de matemáticas bonito, e sempre que quere algo para parecerse con matemáticas vostede envolve-la en cifrões, e digamos que eu estou escribindo algunha ecuación como F = ma, e eu esquezo de envolve-la en cifrões. Entón eu podo destacar iso e envolve-la en cifrões só como aquel. Alternativamente, Vin permite que borre as cousas dentro de etiquetas e eliminar etiquetas e outros adornos, pero Vin por natureza non permite que cambie as etiquetas, así, por exemplo, eu teño esa etiqueta div, e quero actualizar a HTML5 e utilizar unha nova etiqueta de cabeceira. Eu podo facer o cambio en torno etiqueta e tipo na cabeceira, e vai cambiar automaticamente que para min. Do mesmo xeito, imos dicir que temos algo en parénteses, e eu quería cambiar isto a partir de parénteses en soportes ou algo parecido. Eu tamén podo cambiar isto moi facilmente, escribindo c para o cambio, sa surround, entre parénteses. Ah, eu creo que ten que escriba-lo máis rápido. Parénteses e chaves ou corchetes, e só pode cambiar automaticamente que, para min, que é moi bo, se non, normalmente é moi complicado. Isto é moi bo para cambiar entre cita quizais único e cadeas de comiñas dobres ou algo parecido. Este é un exemplo de caso de uso. Hai un plugin chamado Fugitive que se integra co Git. Estou supoñendo que quizais vostedes non usei Git que moi CS50, pero vai atopar-se con Git máis e máis e máis, non só nas clases ao longo de Harvard, pero tamén en postos de traballo e outros enfeites, e, normalmente, ten que cambiar entre a liña de comandos e Vin para interactuar con Git, pero hai plugins para integración con Git dende o Vin e tamén para lle dar aínda unha funcionalidade adicional na parte superior do Git. Hai algo chamado NERDTree, que pode usar para explorar as estruturas de ficheiros de dentro do vin. Por exemplo, podo abrir NERDTree no panel dereito, e basicamente podes ver arquivos aleatorios e os impostos non abertos, non mire para os meus impostos. Podes ollar os arquivos e outros adornos e abrir outros arquivos e así por diante e así por diante. E eu non vou entrar neses outros plugins, para que poidamos mergullo basicamente en e comezar a traballar no Vin, pero hai plugins que permiten que comentar máis facilmente, plugins que permiten ir entre arquivos con máis facilidade, plugins que lle dan comprobación de sintaxis de dentro Vin, que é moi legal, e dálle a comprobación de sintaxe para a maioría das linguas para a dereita fora da caixa, cousas como parénteses do arco da vella, que é realmente moi, moi legal. Deixe-me dar un exemplo de que agora. A ver. Aquí está o código aleatorio que eu estaba escribindo, e vai entender que os corchetes e parénteses son todos de cores, e parénteses e corchetes da mesma cor son combinados, o que é bo e ás veces mellora a lexibilidade do seu código. Tamén ten autocompletado, formato tabular. Cando ten algo que quere obter todos os comentarios para aliñar ou se quere facer unha táboa no seu texto e quere ter todo para parecerse con unha boa mesa, no canto de ter que formatear a man hai plugins que han formatar isto para ti e así por diante e así por diante. A lista vai sobre e sobre e sobre. Podería pasar horas a explorar todas as diferentes plugins Vin que existen, e é incrible o que está aí fóra. Todas as preguntas ata agora? Doce. Neste caso, nós imos comezar a xogar co Vin, e quero que vostedes traballan con algún Vin comigo así pode obter unha sensación para ela, e podo guía-lo en seus primeiros pasos de traballo co Vin porque unha chea de xente queda resaltado cando abren Vin para arriba, e, por veces, se non sabe aínda o mando para saír non pode sequera saír da Vin, pero non é tan malo así. Só ten duns minutos de orientación de alguén que teña usado Vin antes ou ler algúns tutoriais en liña, e estará no seu camiño en ningún momento. Aquí están algunhas instrucións para instalar Vin se non ten xa. Podes ollar para estes diapositivas despois da presentación, se quere instalar máis cousas. Ademais, estas son algunhas instruccións para instalar os meus arquivos de configuración, e tamén se pode seguir estas instrucións máis tarde, se non ten xa. Se vós puidesen ir a este enlace e baixar un arquivo de texto. A ligazón levaralle a este ficheiro de texto, o que me gustaría que baixar e abrir o Vin, e hai unha morea de exercicios e outros adornos alí que pode seguir en torno a min e comezar a obter algunha práctica con algunhas das operacións básicas no Vim. Boa. Mentres está abrindo-se que vou dar unha breve introdución a dous principios moi importantes na edición Vin que son realmente importantes para comprender antes de mergullar Vin, e iso é a edición e operadores e movementos modal. Vou cubrir edición modalidade primeiro, e entón nós imos cubrir os operadores e os movementos de aquí a pouco. O primeiro distinción fundamental entre o Vin e practicamente todos os outros editores de texto, de calquera tipo, é que Vin é un editor modalidade, eo que isto significa é cando está a usar o Vin podería estar nun dos moitos modos diferentes. Non hai modo normal, non hai xeito de inserción, hai o modo visual, así por diante e así por diante, ea cousa, as súas teclas asumir distintas accións, asumir significados distintos, dependendo do que o xeito que está dentro Só como exemplo, o modo normal é o xeito que está en cando se mover, e por iso quere empregar a tecla J para mover para abaixo, pero o modo de inserción, pode utilizar a tecla J para realmente escribir J na pantalla, e é por iso que moitas persoas están confusas, porque eles non están afeitos a estar en modos distintos o tempo, e así eles van estar escribindo as cousas, e está afeito a ter todo o que escribe aparecen na pantalla, pero no vin quizais o cursor se move en todo o lugar porque está escribindo caracteres estraños, e de súpeto comeza desprazado a modo de inserción, porque escribiu algunha clave que o fai en modo de inserción, e, a continuación, o texto comeza a voar para fóra, para que a xente se confunden por causa diso. Pero ten que manter o control de que xeito está dentro, e se ollar para a barra de ferramentas moi inferior do Vin debe haber un indicador que lle di que o xeito que está no momento, que debe ser útil. Pero, en xeral, os tres modos principais que ten que saber sobre, hai só, probablemente, 6 ou 7 ou 8 xeitos máis ou menos, pero pasar a maior parte do seu tempo en 3. O primeiro é o modo normal. Isto é onde gasta a maior parte do seu tempo. Todas as teclas son rexistrados como unha especie de mando, e nós imos estar aprendendo moito destes comandos ao longo do día de hoxe. O outro xeito é o modo de inserción, que é onde realmente está escribindo as cousas, e modo de inserción é basicamente o xeito que está normalmente acostumado. Escribe algo, e el só ven na pantalla, e modo visual é algo que podes facer centrado. Viu anteriormente, onde, ás veces, eu estaría destacando texto e manipula-lo de diferentes xeitos, e iso é un exemplo utilizando o modo visual. Imos comezar cos principios absolutos que precisa para sobrevivir no Vin, e é basicamente estes 7 comandos aquí. HJKL son usados ​​para navegar arredor do ficheiro, e corresponden á esquerda, abaixo, arriba e á dereita, e vostede é libre para usar as frechas do teclado, así como, pero nós realmente encouraged a usar HJKL, na medida do posible porque a idea é que, mentres está a editar, pode mover o documento Sen ter que desprazarse entre as frechas e onde se está escribindo, o que é moi, moi bo. Só quere pasar uns personaxes rematou. Non ten que cambiar toda a súa man sobre, e é unha especie de bo ter iso. Algúns expertos Vin realmente mapear as súas claves de frecha para outras funcións porque xa teñen HJKL, e poden usar as súas teclas de frecha para outras funcións tamén. HJKL se move en torno de ti, mentres se está en modo normal. Se quere poñerse en modo de inserción e escribir algo pode premer i a modo de inserción, e que o pon en modo de inserción, e podes escribir algo, e insire fuga para chegar dende o modo de inserción de volta ao modo normal. Fuxa sempre envía-lo de volta ao modo normal non importa o xeito que está, e se quere saír podes escribir: wq entrar, eo xeito que pode lembrar este é w stands para gravación, eq está para saír, entón: wq, e colonos executa o comando, e así: WQ entrar para executar o comando salva e sae. Se abrir o ficheiro para arriba nós iremos ata o primeiro exercicio conxunto. Paso 1 está sobrevivindo no Vin, e espero que vós todos teñen esta aberta. Bo, e nós temos algúns exercicios simples para se acostumar a usar esas claves. HJKL realmente non parece intuitiva en primeiro lugar, e este é un dos bloques iniciais que as persoas teñen ao usar o Vin é empregar estas teclas para navegar. Non é intuitivo, pero unha vez que se acostumar con iso realmente integra na súa mente, e moitas persoas atopan-se a miúdo usar J e K en Word ou tamén en Chrome, e, de feito, a xente crearon este plugin Chrome chamado Vimium que pode usar en Chrome ou Chromium para navegar polo Chrome usar o teclado usando atallos Vin-like, que a xente está moi entusiasmados con iso, pero vai adiante e tratar de uso HJKL para navegar entre os números só para que poida familiarizarse coa forma como estas cousas funcionan. Despois de rematar isto, tamén se pode ir e xogar con este labirinto que eu creei só por diversión, e pode clasificar de seguir a liña pontilhada e tentar non bater contra as paredes e tentar facelo ata o final do labirinto. Se usar atallos en Gmail ou calquera número de aplicacións verás que J e K, por exemplo, son moitas veces utilizados para ir cara arriba e abaixo, e que, basicamente, ven Vin esencialmente, así que ten J e K, e é moi bo porque pode moverse cara arriba e para abaixo, sen ter que mover a súa man para atrás e para adiante a partir das teclas de frecha. Agora imos tratar de entrar no modo de inserción e saír do modo de inserción. Vai notar que agora o meu cursor é unha gran caixa, negro, e cando vai a modo de inserción ten que considerar que el se transforma nun cursor estreito como está acostumado. Se está usando o Vin no terminal pode non pensar que este é o caso xa que o terminal non soporta este tipo de cursor fino, pero se está a usar MacVim ou gvim en Windows entón ten que considerar que se transforma en un cursor, e iso é un indicador visual moi rápido. É para vostede dicir se está en modo normal ou en modo de inserción. Imos ir adiante e tratar de modificar esa liña. Cubra o con a súa propia información ou o que sexa, e como pode facer iso é que pode mover-se a finais do espazo en branco, escriba i para entrar no modo de inserción, e pode retroceder e escriba o seu nome, e cando rematar de escribir pode premer escape para saír do modo de inserción, e pode mover-se por aquí, tipo de inserción para excluír que, tipo de fuga para saír do modo de inserción, e podes escribir: w entrar para gardar o ficheiro. Podes escribir só: w para gardar o ficheiro. Podes escribir só: q para saír sen gardar, ou podes escribir: wq para gardar e saír. Concedido, non quere saír aínda, entón podes escribir: w. E quizais que parecía un pouco ineficiente a principio porque para ir a aquel lugar que tiña que escribir J unha morea de veces, L quizais unha morea de veces para chegar a ese punto, e ten que premer retroceso unha morea de veces, e parecía realmente ineficiente mentres que normalmente probablemente pasar o rato sobre alí, Dun dobre clic e comezar a escribir, e, por suposto, a cousa é, cando comeza co Vin e só sabe que eses comandos básicos, si, será un pouco máis lento, mais pronto aprende algúns comandos máis poderosos, que permitirá que moverse a través de documentos con máis rapidez, e non terá que ter este uso moi complicado de Js repetindo e repetindo KS e Ls e así por diante e así por diante. Todas as preguntas ata agora? Sólido. Voltar o PowerPoint. Agora imos introducir algúns comandos para o movemento avanzado. Vostede probou ter que escribir quizais L moito ou H moito, e aquí están algúns comandos que pode usar para moverse máis rápido. Supóñase que o cursor está no O máis no algún en "Este é un texto", e aquí están máis 5 comandos que pode usar para mover toda a liña con máis facilidade. Así ^ e $ movelo para o inicio e fin de liña, e nalgún momento, cando aprender expresións regulares ou varias outras cousas verás que este tipo de convenios son moi comúns. A ^ refírese xeralmente ao inicio da liña. A $ xeralmente refírese ao lado da liña. Estes son moi fáciles de lembrar, e do mesmo xeito, b, e, e W, son fáciles de lembrar, pero tamén porque b corresponde cara atrás ou comezo, e corresponde ao final, o que é o fin da palabra, e W corresponde á seguinte palabra, entón w por palabra. E se continúa escribindo e ou continuar escribindo w entender que pode ir entre as palabras, e é moito máis rápido que só escribindo l. Agora, o seguinte paso é que o modelo de Operador-Motion. Esta é realmente unha das principais razóns pola que o Vin pode ser tan poderoso, e é porque pode esencialmente compoñer distintos elementos en funcións máis poderosas, de modo xeral cando fai calquera cousa no Vin pode pensar niso como combinando un operador cun movemento. Ata agora temos só tratada con movementos, como HJKL. Eles se moven en torno de ti, e logo, b e W, eles tamén se moven ao redor de diferentes formas que, pero aínda non pasou a ser capaz de apagar as cousas ou cambiar as cousas ou outros enfeites, e cando se combina operadores con movementos, entón vostede é capaz de ter moito máis poderosos efectos, así, por exemplo, se eu quería borrar 2 palabras, podo usar d para o operador de eliminación, e podo engadir a 2 para indicar que quero eliminar dúas palabras, e entón eu incluír un movemento. Podería incluír w dicir eliminar dúas palabras. Eu podería usar algo como J dicir eliminar descendentes 2 veces e eliminar 2 liñas por baixo de min. Podería dicir D2B eliminar atrás dúas veces, e hai aínda máis movementos que os que eu mostre aquí para realmente facer a súa edición Vin moito máis poderoso. Estes son algúns dos máis populares ou os operadores máis comúns e son moi fáciles de recordar tamén. D para borrar, c para o cambio. C é basicamente o mesmo, só que como o cambio cando usa c vostede automaticamente se pór en modo de inserción despois. Normalmente, cando usa a eliminación de usalo de forma normal, e despois de eliminar algo que permanecer en modo normal. Pero se quere cambiar algo, pode utilizar c para borrar algo e, a continuación, ir inmediatamente ao modo de inserción para que poida comezar a escribir e corrixir algo. Y é para arrincar. É basicamente noción de copia do Vim. Por exemplo, se eu queira copiar os próximos 2 palabras que podo facer y2w ou algo parecido, e V é para destacar, esencialmente. E tamén o que é moi legal é que se insire un operador dúas veces vai actuar nunha liña enteira, entón se eu queira borrar unha liña enteira Podo escribir dd para eliminar toda a liña, ou se eu queira copiar toda a liña que eu poida usar aa ou algo parecido. Imos tentar un pouco máis. Hai un exercicio aquí para un operador de movemento avanzada, así e mesmo algunhas outras cousas que eu non vou cubrir en PowerPoint, hoxe, pero pode sentirse libre para ollar sobre eles máis tarde e xogar con eles e familiarizarse con eles. Operadores e movementos. Por exemplo, supoñamos que existen esas dúas palabras que só quere eliminar na sentenza. O que quere facer é que vai querer asegurarse de que o seu cursor está no inicio da primeira palabra que desexa eliminar, e podes escribir o d2w, e só pode eliminar esas dúas palabras para ti. E usando este comando exacta, d2w, pode parecer un pouco complicado e sen sentido, pero que debería expresar a idea que se pode compoñer esas cousas distintas, e tamén para o caso ocorrer para estar na situación, entón pode acabar empregando DW ou d2w, que eu uso ocasionalmente. Dd e cc eu uso moito máis veces, pois pode actuar en liñas enteiras. Por exemplo, digamos que eu teño esta lista aleatoria aquí, e quizais eu queira borrar a liña que di Huskies, porque non encaixa, só porque, e eu non quero que vaia a modo de inserción despois. Quero borrar-lo, caso en que eu podería escribir dd, e que vai borrar toda a liña. Pero imos dicir que agora hai esa outra liña que desexa eliminar pero eu tamén quero resolve-lo e reescribir-lo, caso en que eu vou tentar algo como cc, e que exclúe toda a liña, pero me pon en modo de inserción, como podes ver, e podo resolve-lo de alí. E hai moitas, moitas maneiras diferentes pode combinar operadores e movementos, e como se usa Vin máis e máis se aprende máis sobre as formas distintas Podes usar estes comandos, e vai facer cada vez mellor. Impresionante, agora aquí están algúns outros comandos variados que tamén son moi, moi comunmente usados ​​e tamén pode axudar a facer-se mellor no Vim. Por exemplo, falamos de minúsculas v ao destacado visual. Podemos tamén usar V maiúscula para a liña visuais destaque. Desta forma, pode destacar liñas enteiras dunha vez con máis facilidade. Pode utilizar o cando está en modo normal para introducir basicamente unha nova liña abaixo da liña que está actualmente en e poñelas no modo de inserción para comezar a escribir. Podes empregar x minúsculo para borrar o carácter que está actualmente baixo o cursor. Tamén pode usar u para desfacer, que é unha especie de bo, e pode usar maiúscula para engadir ao final da liña actual, por iso, quizais o cursor está nalgún lugar en liña, e quere engadir ao final da liña. Despois, pode inserir o capital A para saltar inmediatamente para o final da liña e entrar no modo de inserción para que pode engadir ao final da liña. Creo que teño algúns exercicios para que poidamos experimentar. En realidade, non, eu non sei. Non para aqueles. Pero temos máis algúns exercicios á seguinte sección que imos ver. Pero estes que podes probar a si mesmo tamén. Por exemplo, se insire v regular, vai ter destaque regular que está acostumado a gustar diso. Se insire no capital V, pode obter liña completa destacando así, ou se eu escribir o que basicamente vai abrir unha nova liña para min, o que é ben legal. X podo usar para borrar os caracteres no cursor. Podo premer x unha morea de veces e eliminar cousas. Podo premer u para desfacer todo isto. Un, podo escribir unha para ir inmediatamente para o fin da liña, e eu tamén incluíu algunhas outras teclas agradables que tamén pode ollar para tras a presentación de aprender algúns outros comandos. [Estudante] Que é substitución aproximadamente? [Brandon L.] substitución tamén é moi legal e, basicamente, se ir a algún lugar, sempre a xente realmente non usalo que moito máis nos días de hoxe, pero vós xamais visto en Microsoft Word se insire inserción de súpeto entrar neste modo estraño, onde cada personaxe que escribe basicamente substitúe o próximo personaxe? Non sei se vostedes xa vin iso. Isto é semellante ao que. Por exemplo, se eu queira substituír o que eu teño actualmente, por algún motivo Podo escribir no capital R e agora eu vou estar en modo de substitución, como podes ver na parte inferior esquerda. Se eu escribir cousas que substitúe as cousas, e eu tamén pode retroceder, o que é legal, e podo desfacer isto. Eu non uso iso moi a miúdo, pero de cando en vez fai-se accesible. Imos falar sobre os obxectos de texto, que é unha das miñas cousas favoritas sobre Vin, honesta. Obxectos de texto son basicamente esta noción de definir algún tipo de peza de texto dentro do seu arquivo de texto, e eu vou pasar por riba destas teclas en primeiro lugar, e entón eu vou darlle algunhas demostracións para que poida entender mellor o que iso significa. S refírese a unha palabra, como un obxecto de texto como unha palabra, entón algunha palabra que normalmente coñecemos, e se hai signos de puntuación que é ao lado da palabra non incluirá a puntuación xeral. Pero, por exemplo, se quere incluír a puntuación por algún motivo ou está facendo algo que non é inglés e que pretende incluír todos os personaxes que son delineados por espazos en branco Tamén pode usar o capital W para obter todo o que está rodeado por espazos en branco. Tamén pode usar parénteses para referirse a un obxecto de texto que está dentro dun conxunto de parénteses. Podes facer o mesmo con corchetes, corchetes, chaves, e multimedia, así como, e, finalmente, tamén pode usar t para referirse a algunha etiqueta. Deixe-me amosar-lle como realmente xoga fóra. Por exemplo, este é o meu primeiro exemplo na miña vitrina. Hai algunha palabra nesta frase que quero cambiar, e nós falamos sobre W sendo usado como un movemento, pero tamén pode usalo como un obxecto de texto así. Por exemplo, unha forma que eu podería cambiar o nome de Barack ou modificalo, basicamente, é que eu podería ir para o inicio da palabra e escriba c para o cambio e w por palabra, e que pode borrar a palabra e poñelas no modo de inserción. Pero é moi aburrido para min ter que ir para o inicio da palabra o tempo. Isto é realmente irritante. Eu non quero ter que facelo. Podo realmente estar en calquera lugar dentro do seu nome e escriba CIW, eo i significa interior, por iso, se eu escribir CIW representa o cambio nunha palabra, ou, noutras palabras, cambie a palabra que eu estou actualmente dentro, e el vai che dar exactamente o mesmo efecto. Pode corrixir isto. Igualmente, quizais teña algún caso coma este onde, por algún motivo hai uns delimitadores ou algo así, ou hai algúns signos de puntuación, e eu quería eliminar a cousa toda. Se eu escribir no CIW vai borrar o que está dentro deses delimitadores, pero quero comezar a cousa toda que está rodeado por espazos en branco, para que eu poida usar CIW para borrar a cousa toda. Vou escribir en cinco, facer o mesmo e escribe en seis. Do mesmo xeito, se eu queira cambiar algo que está dentro dos parénteses Podo escribir ci) para eliminar todo o que está dentro dos parénteses e, a continuación, encher o que quero facer, como int argc, o que quere facer, e do mesmo xeito, o mesmo con comiñas. Podo fixar texto que está dentro comiñas, e eu tamén pode cambiar as cousas que están dentro etiquetas. Será que isto ten sentido? Outra cousa que podes facer é que non ten que empregar c. Tamén pode usar d se quere borrar o que está dentro destas etiquetas. Se eu queira borrar o texto dentro dunha marca que podo usar dit para borrar esa marca. Podo tamén usar vit para destacar o que está dentro da tag, por exemplo. A outra cousa é en vez de usar i no medio, tamén pode usar un, que significa para todos, polo que lembre que usa i vai referirse ao obxecto de texto ou usar un obxecto de texto que está contido dentro delimitadores, pero se usa un que debería incluír este texto, así como o propio delimitador. Por exemplo, se quero destacar este texto ea etiqueta circundante Podo usar cuba, v para o destaque visual, un por todos e, a continuación, ta a marca. Pode facer algo así tamén. Poida que eu queira eliminar esta google.com coas comiñas en torno a el, así como, e podo usar algo como da "para borrar todo isto, por exemplo. Todas as preguntas ata agora? Eu entendo que estou dumping sobre unha morea de comandos Vin dunha soa vez, e este é basicamente porque quero expo-lo a todos os distintos comandos e darlle unha introdución para o que estes comandos fan no vin. Pero o que vai ter que ocorrer é cando atrás vai ter que escoller lentamente estes comandos, un por un. Non quere se estressar, porque iso é moi grande. Se quere incorporarse Vin o que realmente ten que facer é comezar co primeiro conxunto básico, e eu rompe o en clases para ti que fan máis doado para ti seguir, e intentar dominar cada conxunto de comandos , Un por un, un de cada vez. É moita cousa para facer todo dunha vez, así que o que ten que facer cando atrás é ir á primeira lección, que se HJKL, o modo de inserción, escapar ao modo normal, e gardar e saír, e iso é todo o que realmente necesita para sobrevivir no Vin, e teña moi, moi cómodo con iso. E despois de varios días, xa que está moi cómodo con iso ten que pasar para os operadores de movemento máis avanzados, os movementos máis avanzada, e para os operadores e así por diante e así por diante. Sei que estou pasando por moita cousa, pero quero estar exposto a unha morea de cousas distintas. Pero no caso de que está preparado para o reto, podo amosar-lle como pode pór todo isto en conxunto, utilizando ao máximo o que acabamos de aprender, hoxe, e tamén pode seguir, se quere, pero eu creei un pouco de exercicio aleatoria. Supoña que teñamos algún tipo de lista como esta onde ten eses bloques con nomes de persoas, vivendas, anos, e as concentracións e outros enfeites, e quere engadir unha nova entrada para si mesmo. Cal é a mellor forma de facelo? Imos facelo así. Por que non imos primeiro destaque deste bloque. Vas para selecciona-lo, e pode premer y para arrincar-lo, entón agora podemos basicamente copiar e pegar este modelo primeiro sen ter que reescribir todo de cero. Agora vou presionar j abaixo unha chea de veces para ir para abaixo, e eu vou presionar p para pegalo. Poida que eu vou escribir unhas liñas extras dun espazo, e imos dicir que agora quero cambiar o seu nome para alguén. Entón eu podo ir aquí e escriba C2W como antes para cambiar ese nome. Bob Jones, quen sabe. Quizais se eu queira cambiar de casa podo ir para o medio aquí e escriba CIW e poñer Cabot House. Aquí pode ser un exemplo de onde pode querer considerar o uso de o modo de substitución para cambiar o seu ano de graduación, se quere, ou tamén podemos utilizar CIW tamén. Non importa. Quizais queira cambiar o seu maior. E iso é o que fai. E quizais eu vou darlle unha demostración de que eu podería facer se eu fose, se continúa a aprender comandos máis avanzados no Vin porque estamos só raiar a superficie aquí, e eu podería facer este tipo de edición aínda máis rápido do que eu xa demostrei aquí porque sei que máis comandos que non obtivesen a oportunidade de amosar-lle para hoxe. Por exemplo, se quero destacar iso podo facelo así, mover a abaixo. Eu engade o meu propio mapeamento basicamente destacar automaticamente cousas para min e podo-eu non sei. É dicir, que está só tentando amosar-lle que realmente pode comezar a editar as cousas máis rápido, especialmente cando ten todos estes diferentes campos, e, normalmente, o que podería estar facendo é unha especie de clic e destacando e escribindo. Pode facer todo dunha vez, copiar e pegar, movendo arriba e para abaixo entre o ficheiro, só delimitando cousas, formato cousas. Todo iso se pode facer moito máis rapidamente no vin. Só unha última cousa que eu creo que pode ser moi bo, que é localizar e substituír. Aqueles de vós que usaron atallos de Gmail tamén vai saber que se insire / el envía-lo para a caixa de busca, e nunha serie de diferentes aplicacións, en xeral, podes ver que a barra ou que controlar barra ou algo que ver con Slash vai poñelas nunha especie de forma de investigación, e que tamén ven basicamente da Vin esencialmente xa que o operador barra ou a orde barra permite que introduce algún tipo de cadea de caracteres que pode usar para buscar dentro do documento. Pode n eo capital N para ir á seguinte ea aparición anterior, e tamén pode usar algo semellante ao buscar e substituír no documento. Vou che dar unha demostración do que se pode facer. Quizais se eu queira atopar todas as instancias do puxão cadea dentro deste documento Podo escribir / arranco, como se pode ver na parte inferior esquerda, e cando tecleo entrar destaca todas as instancias. Podo usar basicamente n ir para atrás e cara adiante entre todos os casos distintos, e imos supor que quero buscar e substituír puxão con algunha palabra aleatoria que tamén no documento. I pode premer: para comezar a escribir en algún tipo de orde dentro Vin, algún comando que é máis sofisticado do que moverse ou eliminar ou algo parecido. Eu escriba o sinal% referindo que quero usar este comando substitución en todo o documento. Escriba sa substitución. Isto vén de PEARL esencialmente. E este seguinte comando é un comando moi normal que vai atopar en PEARL vez e noutras linguaxes de programación que vai probablemente comezar a aprender como fai máis ciencia da computación, e eu basicamente pode usar / escribir a /, escriba a palabra que desexa localizar e substituír e, a continuación, escriba outro / e escribir calquera palabra que quero substituír a palabra con. Quen sabe, quizais nyancat. Fago isto, e entón vai ver que todo foi substituído. Pero vai entender que hai esa palabra aquí. Por algunha razón, algúns dos exemplos de puxão son substituídos, pero non todos, e iso é porque o xeito no que este tipo de linguaxe se escribiu non só no vin, pero noutros lugares é que, cando executar o comando de substitución só pode substituír a primeira aparición da palabra en cada liña, por iso, se quero realmente substituír todas as ocorrencias da palabra en cada liña entón eu teño que facer a mesma cousa, pero engadir bandeira ag ao final, que significa global, e, a continuación, que vai realmente substituír todas as instancias. E unha vez que aprender as expresións regulares, hai realmente un seminario CS50 sobre expresións regulares, por iso, se está curioso sobre as expresións regulares tamén se pode sacar deste seminario e aprender máis. Pero por exemplo, digamos que eu teño unha lista de nomes como esta, e quero reorganizar-lo, de xeito que en vez de ter apelidos, coma, nome Quero reorganizar-lo así que di o seu nome, o espazo, apelidos. Realmente pode usar este comando aquí facer, esencialmente, que para vostede, así como se pode ver aquí comezamos cun s, o que significa que queremos facer un localizar e substituír, e entón eu engade un sinalizador chamado \ v, que é algo chamado esta bandeira máxica Vin en que permite que fai as expresións regulares con máis facilidade. Entón a partir de aí nós quedamos basicamente para toda a liña única que é da forma dun conxunto de palabras, coma, espazo e un conxunto de palabras ou un conxunto de letras. \ W + basicamente significa un ou máis caracteres, e os parénteses son utilizados para capturar estes grupos para que eu poida consultala las máis tarde. Como verás, xa que estes captura dous bloques de palabras que son separados por unha coma, espazo entón o que queremos substituílo con é que eu uso \ 2 e \ 1 remitir para as palabras que foron capturados ao mando real descubrimento, e así por \ 2 refírese a todo o que está contido no segundo conxunto de parénteses, \ 1 refírese a todo o que está contido no primeiro conxunto de parénteses, e como podes ver, eu estou poñendo 2 antes do 1 de separados por un espazo para tratar de cambiar o seu nome antes do apelido. Será que isto ten sentido? E o que podo facer é que podo ocultar estes primeiros, entón eu só executar esta orde sobre estas liñas, e entón eu vou escribir esta orde. Podes ver que fai exactamente como dividido. E, de novo, iso é só rabuñando a superficie, e se vai ao seminario expresión regular, entón eu estou seguro que vai aprender cousas moito máis diferentes que pode facer con expresións regulares, e iso basicamente comeza a suxerir o que realmente pode facer con Vin se realmente comezar a facer un mestre niso. Quizais queira renovar algo, e quere atopar todas as instancias dalgunha función que segue algún tipo de patrón de nomenclatura. Quere cambiar a forma que está nomeado. Podes escribir algún tipo de comandos como este para facelo por vostede, e ese é o tipo de flexibilidade que pode comezar dentro Vin que simplemente non vai conseguir noutros editores de texto. Isto cobre basicamente todas as cousas que eu quería ensinar-lle hoxe, en seminario de hoxe, pero, de novo, eu realmente quero salientar que, se quere incorporarse o Vin é certo que hai unha curva de aprendizaxe un pouco maior no inicio. No comezo vai ser un pouco menos produtivos que probablemente sería doutra forma, pero se queda con ela dentro duns días ou unhas semanas, dependendo de quão rápido aprende, vai facer moito máis rápido, e eu tente darlle unha demostración sobre o que é capaz de Vin, pero eu realmente non ter a oportunidade de amosar-lle o que ocorre cando eu-for normalmente exemplo, na clase I tipo en miñas notas con Vim. Isto porque podo traballar moito máis rápido no Vin que eu con calquera outro programa. É, literalmente, un aumento de produtividade de 2 ou 3 veces no Vin comparación con outros programas, non só coa velocidade de edición de texto, senón tamén na forma en que eu me podo mover o documento e do xeito que eu poida acceder a outros arquivos no meu ordenador e salto entre eles e así por diante e así por diante. É só un realmente, realmente enorme aumento de produtividade. Pero cando está a aprender, quere estar seguro de que aprende unha cousa de cada vez, e probe non sobrecargar-se con moitos comandos distintos porque hai unha morea de comandos e unha morea de diferentes atallos que pode aprender no vin. Quere pegar un pouco de cada vez e ao longo dos anos gradualmente acumular unha comprensión cada vez maior de Vim. Se quere continuar a aprender máis, estes son algúns dos temas máis avanzados pode continuar a aprender sobre, e aínda este mal rabuña a superficie. Aquí están algunhas extensións populares que pode sentirse libre para check-out e Google-los e xogar con eles, se quere e só ver que tipo de plugins están aí fora. E, a continuación, ao final da presente PowerPoint, inclúo un grupo de ligazóns a varios recursos que pode usar para aprender. Aquí están unha morea de enlaces diferentes que pode usar para comezar co Vim. Teñen diferentes tutoriais e outros enfeites, e, finalmente, estas son algunhas cousas máis avanzadas que pode usar comprobar tamén para fóra, así como, algúns moldes de pantalla e algunhas técnicas máis avanzadas no Vin e tamén algunhas pezas diferentes do código fonte, pode ollar cara arriba no GitHub só de ollar para os ficheiros de configuración de outras persoas ou mirar para plugins no vin e así por diante e así por diante. Isto é todo o que eu teño para vostede. [CS50.TV]