[Seminário Vim] [Liu Brandon] [Harvard University] [Isto é CS50.] [CS50.TV] Hoje vai ser uma introdução ao Vim. Quantos de vocês já ouviu falar do Vim? O que você ouviu sobre o Vim? [Estudante] Ele resolve todos os seus problemas. [Brandon L.] Ele resolve todos os seus problemas. Qualquer outra coisa que vocês já ouviu falar sobre o Vim? Impressões? [Estudante] Quase todo mundo que eu falei com gosta de usar Vim. Oh, doce. [Estudante] Um monte de pessoas que eu conheço gostam de usar o Vim. Ok, isso é bom, porque um monte de pessoas em CS51 começar a pegar Emacs porque Emacs tem um pouco melhor apoio para a linguagem que você vai usar em CS51, e eu me preocupo que as pessoas não o suficiente em Harvard usar Vim, então eu realmente tentar fazer um bom trabalho de incentivar o uso Vim. Mas aqui é uma história em quadrinhos xkcd clássico que vocês podem achar interessante. Vocês já utilizado Nano antes em tudo? Este quadrinhos diz Nano? Programadores reais usam Emacs. Hey, os programadores reais usar Vim. Não, programadores reais usar Ed que é isso, você não quero nunca mais usar Ed. É muito, muito velho e muito ruim, e os programadores usam reais uma agulha imantada e uma mão firme. E você pode ler o resto, mas é muito divertido. E o engraçado é que no final. Eles dizem: "Oh, sim, claro, há um comando Emacs para fazer isso." O bom e velho Cx Mc M-borboleta, que é uma espécie de um jab no Emacs porque Emacs é conhecido historicamente a ser um pouco inchado e tem comandos para quase nada, de modo que é uma espécie de piada para Emacs. O que é Vim? Vim é editor de texto de um programador avançado. Eu realmente quero fazer a distinção entre o editor de texto e algo como um processador de documentos. Microsoft Word é conhecido como um processador de documentos. Você pode definir as margens, as coisas negrito, sublinhado coisas, golpear com as coisas, mudar o tamanho da fonte e outros enfeites. Um editor de texto não faz nada mais do que apenas editar o texto. Literalmente você só tem caracteres. Não há nenhum tipo de estilo, tamanhos, fontes, cores, ou qualquer coisa assim. Tudo que você faz é editar texto, e Vim foi feito especialmente para a programação. Ele tem um monte de recursos internos em apenas para a programação. Ele foi projetado especificamente para a edição de texto eficiente. Em geral, o Vim é conhecido por ser basicamente o editor de texto rápido você pode eventualmente usar em comparação com qualquer outro editor de texto que é possível. Um monte de recursos do IDE-like não são construídas diretamente no Vim, por isso, se você já usou um IDE e você está acostumado a coisas como compilar e executar automaticamente ou depuração que está em seu IDE ou toda uma série de coisas diferentes Vim não vem com que, naturalmente, mas há toda uma série de plugins que você pode usar para adicionar esse tipo de funcionalidade para Vim. Vim por si só incide sobre a edição de texto e edição de texto faz muito, muito bem. E, finalmente, é muito personalizável e extensível, e, basicamente, o Vim tem sido em torno, ou Vi, Vim que é construído em cima, tem sido em torno de mais de 40 anos, e é um programa muito, muito profundo, e as pessoas vão usá-lo para toda a vida e nunca realmente dominar o programa em sua plenitude, e você vai sempre continuar a aprender ao longo de sua vida ao longo dos anos, sempre se tornando cada vez melhor. Basicamente não há fim para o que você pode aprender e quanto você pode melhorar com o Vim, o que é realmente emocionante. Você não quer vê-la como algo assustador, porque você pode se tornar muito, muito proficiente no vim em apenas algumas semanas, mas é como uma espécie de contínuo com você sempre pode aprender mais e aprender mais e fazer as coisas cada vez melhor, que é muito empolgante para mim. Este é um exemplo do que Vim parece. Este não é o meu. Você vai ver algumas demonstrações ao vivo agora. Este é um exemplo do que o Vim pode parecer. O que vamos fazer hoje é que vamos começar com  uma vitrine rápida do que o Vim pode fazer. Vou fazer alguns truques e outros enfeites para vocês assim você pode ver por que eu gosto Vim tanto e por que pessoas como Vim tanto, e então a partir daí nós vamos entrar em uma introdução suave. Na verdade, ele vai ser um pouco rápido, uma introdução à Vim. Vou pedir a vocês o download de um arquivo de texto e de seguir junto comigo, se puder. Este é Vim, e aqui eu estou usando MacVim, por isso, se vocês têm Macs você pode querer considerar o uso de MacVim porque é uma versão gráfica do Vim, embora o Vim regular, o que está na sua linha de comando, funciona muito bem. Eu vou mostrar-lhe algumas dicas e truques aleatórios que você pode usar no Vim para mostrar-lhe por que é tão legal. Apenas algumas coisas aleatórias que eu vou passar. A primeira coisa é objetos de texto, e há alguns comandos em torno de objetos de texto, e eu vou te ensinar o que realmente texto objetos são mais detalhadamente mais tarde no seminário, mas, por exemplo, digamos que eu escrito o meu nome errado, Barndon Liu, e eu quero mudar isso. Tudo o que tenho a fazer é buscar o meu cursor em algum lugar, em meu nome e digite o comando CIW, e ele vai apagar todo o meu nome, me colocou em modo de inserção, e posso digitar meu nome e corrigi-lo. Da mesma forma, se eu quiser mudar alguma coisa dentro de aspas, há também um comando para isso. Eu posso apagar as coisas dentro de aspas. Não mais ter que clicar duas vezes, mover sua mão para o mouse, clique duas vezes e digite algo para trás dentro Você pode fazer tudo a partir do teclado, seja ele qual for. Ou, em alternativa, digamos que eu tenho essa tag de imagem dentro desta tag âncora. Vocês já coberto HTML em sala de aula ainda? Sim, talvez por isso eu quero apagar essa marca, que normalmente o que você tem a fazer é que você tem que usar o mouse e cuidadosamente destacar exatamente o que você deseja excluir e excluí-lo. Mas no Vim que é simplesmente dit, e você pode excluí-lo muito rapidamente, e eu vou explicar-lhe o que todos os comandos significam e como você usá-los em um segundo. Outro exemplo, eu tenho um código aqui, e digamos que eu quero para recuar o código, mas eu quero para recuar o código apenas dentro dos parênteses, e eu também pode recuar o código usando três comandos utilizando basicamente> iB. Outra coisa que é realmente legal sobre Vim é uma coisa chamada edição bloco visual. Eu não sei se vocês já queria destacar um bloco retangular de texto em seu código, por vezes, em vez de ter que fazer esse tipo de coisa estranha linha que se estende por todas as linhas diferentes. Por exemplo, no Vim você pode fazer isso. Posso destacar retângulos como esta, que é muito legal, mas, além disso, eu posso editar usando essa funcionalidade. Por exemplo, se eu quiser dar algum tipo de prefixo para todos os nossos nomes Posso destacar um bloco e, em seguida, acrescentar algo. Da mesma forma, eu também posso destacar este bloco e optar por excluí-lo, ou talvez eu vou destacar este bloco e alterá-lo para D porque nós somos todos os médicos. Seja o que for, você pode fazer todas essas coisas diferentes. Finalmente, dobrável é muito legal. Um monte de IDEs têm essa onde você pode dobrar diferentes funções fora da vista no caso de você não quer vê-los. Por exemplo, vamos supor que eu tenho esse monte de texto aqui, e eu realmente não quero vê-lo. Eu quero mantê-lo fora da vista, porque eu estou editando outra coisa no arquivo. Eu posso dobrá-la por isso é tudo desabou, e de que maneira ele está fora de vista, e eu posso editar outras coisas que estão na página, e isso é realmente grande. Você pode dobrar-se as funções e outros enfeites ou dobrar aulas quando você está programando apenas para mantê-los fora de vista quando você não estiver editando-os, e mais tarde, quando você quiser vê-los, você pode abri-los. E você pode vê-lo acaba de abrir tudo. Tabs, amortecedores, e janelas. Vim é muito legal em que normalmente em um monte de editores de texto só pode editar um arquivo de cada vez, como no Nano, ou talvez se você estiver usando o Bloco de Notas ou Gedit. Eu realmente nunca usei Gedit muito, mas pelo menos no Notepad + + você pode ter abas, mas Vim tem o conceito de abas, buffers e janelas. Por exemplo, você pode abrir um monte de novas guias. Você pode ver aqui no topo agora eu tenho um monte de abas, e posso fechá-las. Além disso, há o conceito de buffers, que é a idéia de que uma vez que você abriu um arquivo ele permanece vivo na memória temporária, e se você quer navegar para esse arquivo muito rapidamente você pode navegar até ele muito rapidamente dentro do tampão, bem como, e, além disso, dentro de um painel você pode também dividir sua janela acima em várias janelas. Por exemplo, se eu quero dividir essa janela se em várias janelas você pode ver aqui que eu possa ter o mesmo código duas vezes, e posso dividir mais e mais e mais, e agora ele não parece tão bom porque, por padrão, tenho o tamanho de janela padrão ser uma espécie de grande para que todos os outros são esmagados para fora, mas normalmente quando estou no meu computador e não neste projetor Eu posso ter vários painéis abertos ao mesmo tempo, o que é muito bom para edição de vários arquivos ao mesmo tempo. Você também pode ter coisas como selecionar e substituir, e nós vamos realmente cobrir que no seminário, então eu vou pular isso por enquanto. Você também pode interagir com a linha de comando em todos os tipos de formas diferentes. Por exemplo, se eu tenho algum tipo de lista aqui e quero classificá-lo- Eu não sei, vamos adicionar outra fruta, uva, e posso destacar esta usando a função de destaque e chamá-tipo, e ele vai resolver isso automaticamente para mim. Da mesma forma, se você estiver indo para a edição de CSS, o que eu presumo que você provavelmente estará fazendo para o seu projeto final, a maioria das pessoas fazem, e talvez você quer manter seu CSS organizado, classificando-os em ordem alfabética. Você também pode destacá-los e chamá-tipo, e vai classificá-los para você. Estes são alguns dos exemplos das coisas que Vim pode fazer, e você vai perceber que a principal coisa que eu realmente quero chamar a atenção para é que eu estou fazendo de tudo, desde o teclado, e se você é capaz de ver onde as minhas mãos são colocadas você também vai ver que as minhas mãos nunca passar da linha casa. Normalmente, quando você está editando texto que você geralmente tem que usar um mouse e clique em volta e tudo mais, e esse tipo de movimento arrasta para baixo e desperdiça tempo, ou talvez você está se movendo entre a linha de casa e as teclas de seta, e assim que você está se movendo para trás e para a frente como esse, que é um pouco pesado mas também reduz a velocidade, ea coisa é quando você ficar realmente bom no Vim tudo o que você quer fazer é feito sem ter que mover suas mãos a partir da linha de casa, o que é ótimo. Espere, eu vou abrir esta aplicação. Lá vamos nós. Agora você pode ver o que os comandos estão correndo para baixo da janela inferior direito. Todas as funções que eu acabei de mostrar coisas que estão incluídos por padrão com o Vim, mas há também um número enorme de plugins que você também pode usar para melhorar sua experiência Vim. Se você baixou os arquivos de configuração que eu incluídos, e há instruções sobre como instalá-los no PowerPoint e também no e-mail que enviei para fora, eu tenho cerca de 40 plugins instalados ou talvez 30 plugins, e cada um traz funcionalidades adicionais para o Vim que melhora sua experiência Vim. Por exemplo, um dos meus favoritos é algo chamado surround.vim, e que basicamente permite que você trabalhe com áreas ou delimitando personagens muito mais facilmente. Um exemplo, eu não sei se vocês já código em LaTeX, mas LaTeX é uma linguagem de composição de matemática que é utilizada para fazer muito bom de matemática bonito, e sempre que você quer algo para se parecer com a matemática você envolvê-la em cifrões, e digamos que eu estou escrevendo alguma equação como F = ma, e eu esqueci de envolvê-la em cifrões. Então eu posso destacar isso e envolvê-la em cifrões apenas como aquele. Alternativamente, Vim permite que você apague as coisas dentro de tags e excluir tags e outros enfeites, mas Vim por natureza não permite que você altere as etiquetas, assim, por exemplo, eu tenho essa tag div, e eu quero atualizar para HTML5 e usar uma nova tag de cabeçalho. Eu posso fazer a mudança em torno tag e tipo no cabeçalho, e vai mudar automaticamente que para mim. Da mesma forma, vamos dizer que temos algo em parênteses, e eu queria mudar isso a partir de parênteses em suportes ou algo parecido. Eu também posso mudar isso muito facilmente, digitando c para a mudança, s para surround, entre parênteses. Ah, eu acho que tem que digitá-lo mais rápido. Parênteses e chaves ou colchetes, e ele vai mudar automaticamente que, para mim, que é muito bom, caso contrário, normalmente é muito complicado. Isso é muito bom para alternar entre citação talvez único e cadeias de aspas duplas ou algo parecido. Esse é um exemplo de caso de uso. Há um plugin chamado Fugitive que se integra com o Git. Eu estou supondo que talvez vocês não usei Git que muito em CS50, mas você vai encontrar-se com Git mais e mais e mais, não só nas aulas ao longo de Harvard, mas também em postos de trabalho e outros enfeites, e, normalmente, você tem que alternar entre a linha de comando e Vim para interagir com Git, mas há plugins para integração com Git a partir do Vim e também para lhe dar ainda uma funcionalidade adicional no topo do Git. Há algo chamado NERDTree, que você pode usar para explorar as estruturas de arquivo de dentro do vim. Por exemplo, eu posso abrir NERDTree no painel direito, e basicamente você pode ver arquivos aleatórios e os impostos não-abertos, não olhe para os meus impostos. Você pode olhar para os arquivos e outros enfeites e abrir outros arquivos e assim por diante e assim por diante. E eu não vou entrar nesses outros plugins, para que possamos mergulhar basicamente em e começar a trabalhar no Vim, mas existem plugins que permitem que você comentar mais facilmente, plugins que permitem saltar entre arquivos com mais facilidade, plugins que lhe dão verificação de sintaxe de dentro Vim, que é muito legal, e dá-lhe a verificação de sintaxe para a maioria das línguas para a direita fora da caixa, coisas como parênteses do arco-íris, que é realmente muito, muito legal. Deixe-me dar um exemplo de que agora. Vamos ver. Aqui está um código aleatório que eu estava escrevendo, e você vai perceber que os colchetes e parênteses são todos coloridos, e parênteses e colchetes da mesma cor são combinados, o que é bom e às vezes melhora a legibilidade do seu código. Você também tem autocompletar, formatação tabular. Quando você tem algo que você quer obter todos os comentários para alinhar ou se você quiser fazer uma tabela em seu texto e você quiser ter tudo para se parecer com uma boa mesa, em vez de ter que formatar manualmente existem plugins que irão formatar isso para você e assim por diante e assim por diante. A lista vai sobre e sobre e sobre. Eu poderia passar horas a explorar todas as diferentes plugins Vim que existem, e é incrível o que está lá fora. Todas as perguntas até agora? Doce. Nesse caso, nós vamos começar a brincar com o Vim, e eu quero que vocês trabalham com algum Vim comigo assim você pode obter uma sensação para ela, e eu posso guiá-lo em seus primeiros passos de trabalho com o Vim porque um monte de gente ficar sobrecarregado quando abrem Vim para cima, e, por vezes, se você não sabe mesmo o comando para sair você não pode sequer sair da Vim, mas não é tão ruim assim. Você só precisa de alguns minutos de orientação de alguém que tenha usado Vim antes ou ler alguns tutoriais on-line, e você estará em seu caminho em nenhum momento. Aqui estão algumas instruções para instalar o Vim se você não tiver já. Você pode olhar para esses slides após a apresentação, se você quiser instalar mais coisas. Além disso, estas são algumas instruções para instalar os meus arquivos de configuração, e você também pode seguir estas instruções mais tarde, se você não tiver já. Se vocês pudessem ir a este link e baixar um arquivo de texto. O link levará você para este arquivo de texto, o que eu gostaria que você baixar e abrir no Vim, e há um monte de exercícios e outros enfeites lá que você pode seguir em torno de mim e começar a obter alguma prática com algumas das operações básicas no Vim. Boa. Enquanto você está abrindo-se que eu vou dar uma breve introdução a dois princípios muito importantes na edição Vim que são realmente importantes para compreender antes de mergulhar Vim, e isso é a edição e operadores e movimentos modal. Eu vou cobrir edição modal primeiro, e então nós vamos cobrir os operadores e os movimentos daqui a pouco. A primeira distinção fundamental entre o Vim e praticamente todos os outros editores de texto, de qualquer tipo é que Vim é um editor modal, eo que isso significa é quando você está usando o Vim você poderia estar em um dos muitos modos diferentes. Não há modo normal, não há modo de inserção, há o modo visual, assim por diante e assim por diante, ea coisa é, suas teclas assumir diferentes ações, assumir significados diferentes, dependendo do que o modo que você está dentro Apenas como exemplo, o modo normal é o modo que você está em quando você se movimentar, e por isso gostaria de usar a tecla J para mover para baixo, mas no modo de inserção, você pode usar a tecla J para realmente digitar J na tela, e é por isso que muitas pessoas ficam confusas, porque eles não estão acostumados a estar em modos diferentes o tempo todo, e assim eles vão estar digitando as coisas, e você está acostumado a ter tudo o que você digita aparecem na tela, mas no vim talvez o cursor se move em todo o lugar porque você está digitando caracteres estranhos, e de repente você começa deslocado para o modo de inserção, porque você digitou alguma chave que o coloca em modo de inserção, e, em seguida, o texto começa a voar para fora, para que as pessoas se confundem por causa disso. Mas você tem que manter o controle de qual modo você está dentro, e se você olhar para a barra de ferramentas muito inferior do Vim deve haver um indicador que lhe diz que o modo que você está no momento, que deve ser útil. Mas, em geral, os três modos principais que você deve saber sobre, existem apenas, provavelmente, 6 ou 7 ou 8 modos mais ou menos, mas você passar a maior parte do seu tempo em 3. A primeira coisa é o modo normal. Isto é onde você gasta a maior parte de seu tempo. Todas as teclas são registrados como uma espécie de comando, e nós vamos estar aprendendo muito desses comandos ao longo do dia de hoje. O outro modo é o modo de inserção, que é onde você realmente está digitando as coisas, e modo de inserção é basicamente o modo que você está normalmente acostumado. Você digita alguma coisa, e ele só vem na tela, e modo visual é algo que você pode fazer realce. Você viu anteriormente, onde, por vezes, eu estaria destacando texto e manipulá-lo de diferentes maneiras, e isso é um exemplo usando o modo visual. Vamos começar com os princípios absolutos que você precisa para sobreviver no Vim, e é basicamente estes 7 comandos aqui. HJKL são usados ​​para navegar ao redor do arquivo, e correspondem a esquerda, para baixo, para cima e para a direita, e você é livre para usar as setas do teclado, bem como, mas nós realmente encorajamos você a usar HJKL, tanto quanto possível porque a idéia é que, enquanto você estiver editando, você pode mover o documento , sem ter que deslocar entre as setas e onde você está digitando, o que é muito, muito bom. Você só quer passar alguns personagens acabou. Você não tem que mudar toda a sua mão sobre, e é uma espécie de bom ter isso. Alguns especialistas Vim realmente mapear suas chaves de seta para outras funções porque eles já têm HJKL, e eles podem usar suas teclas de seta para outras funções também. HJKL se move em torno de você, enquanto você está no modo normal. Se você quiser entrar em modo de inserção e digitar algo você pode pressionar i para o modo de inserção, e que o coloca no modo de inserção, e você pode digitar algo, e você digitar fuga para chegar a partir do modo de inserção de volta ao modo normal. Fuja sempre envia-lo de volta para o modo normal não importa o modo que você está, e se você quer sair você pode digitar: wq entrar, ea maneira que você pode se lembrar este é w stands para gravação, e q está para sair, então: wq, e cólon executa o comando, e assim: WQ entrar para executar o comando salva e sai. Se você abrir o arquivo para cima nós iremos até o primeiro exercício conjunto. Passo 1 está sobrevivendo no Vim, e espero que vocês todos têm esta aberta. Bom, e nós temos alguns exercícios simples para você se acostumar a usar essas chaves. HJKL realmente não parece intuitivo em primeiro lugar, e este é um dos blocos iniciais que as pessoas têm ao usar o Vim é usar essas teclas para navegar. Não é intuitivo, mas uma vez que você se acostumar com isso ele realmente integra na sua mente, e muitas pessoas encontram-se frequentemente usando J e K no Word ou também no Chrome, e, na verdade, as pessoas criaram este plugin Chrome chamado Vimium que você pode usar no Chrome ou Chromium para navegar pelo Chrome usando o seu teclado usando atalhos Vim-like, que as pessoas estão muito entusiasmados com isso, mas vá em frente e tentar uso HJKL para navegar entre os números apenas para que você possa se familiarizar com a forma como estas coisas funcionam. Depois de terminar isso, você também pode ir e brincar com este labirinto que eu criei apenas por diversão, e você pode classificar de seguir a linha pontilhada e tentar não bater contra as paredes e tentar fazê-lo até o fim do labirinto. Se você usar atalhos no Gmail ou qualquer número de diferentes aplicações você verá que J e K, por exemplo, são muitas vezes utilizados para mover para cima e para baixo, e que, basicamente, vem Vim essencialmente, então você tem J e K, e é muito bom porque você pode se mover para cima e para baixo, sem ter que mover sua mão para trás e para a frente a partir das teclas de seta. Agora vamos tentar entrar em modo de inserção e sair do modo de inserção. Você vai notar que agora o meu cursor é uma grande caixa, preto, e quando você vai para o modo de inserção você deve achar que ele se transforma em um cursor estreito como você está acostumado. Se você estiver usando o Vim no terminal você pode não achar que este é o caso porque o terminal não suporta este tipo de cursor fino, mas se você estiver usando MacVim ou GVim no Windows então você deve achar que ele se transforma em um cursor, e isso é um indicador visual muito rápido. É para você dizer se você está no modo normal ou no modo de inserção. Vamos ir em frente e tentar editar essa linha. Preencha-o com sua própria informação ou o que seja, e como você pode fazer isso é que você pode mover-se até o final do espaço em branco, digite i para entrar em modo de inserção, e você pode retroceder e digite seu nome, e quando terminar de digitar você pode pressionar escape para sair do modo de inserção, e você pode mover-se por aqui, tipo de inserção para excluir que, tipo de fuga para sair do modo de inserção, e você pode digitar: w entrar para salvar o arquivo. Você pode digitar apenas: w para salvar o arquivo. Você pode digitar apenas: q para sair sem salvar, ou você pode digitar: wq para salvar e sair. Concedido, não quer sair ainda, então você pode digitar: w. E talvez que parecia um pouco ineficiente a princípio porque para ir para aquele lugar que você tinha que digitar J um monte de vezes, L talvez um monte de vezes para chegar a esse ponto, e você tem que pressionar backspace um monte de vezes, e parecia realmente ineficiente enquanto que normalmente você provavelmente passar o mouse sobre lá, dê um duplo clique e começar a digitar, e, claro, a coisa é, quando você começa com o Vim e você só sabe que esses comandos básicos, sim, será um pouco mais lento, mas logo você aprende alguns comandos mais poderosos, que permitirá que você se mover através de documentos com muito mais rapidez, e você não terá que ter este uso muito complicado de Js repetindo e repetindo Ks e Ls e assim por diante e assim por diante. Todas as perguntas até agora? Sólido. Voltar para o PowerPoint. Agora vamos introduzir mais alguns comandos para o movimento avançado. Você experimentou ter que digitar talvez L muito ou H muito, e aqui estão mais alguns comandos que você pode usar para se mover mais rapidamente. Suponha-se que o cursor está no O mais no algum em "Este é um texto", e aqui estão mais 5 comandos que você pode usar para mover toda a linha com mais facilidade. Assim ^ e $ movê-lo para o início e fim de linha, e em algum momento, quando você aprender expressões regulares ou várias outras coisas você verá que este tipo de convenções são muito comuns. A ^ refere-se geralmente ao início da linha. A $ geralmente refere-se ao lado da linha. Estes são muito fáceis de lembrar, e da mesma forma, b, e, e w, eles são fáceis de lembrar, mas também porque b corresponde para trás ou começo, e corresponde ao final, o que é o fim da palavra, e w corresponde à próxima palavra, então w por palavra. E se você continuar escrevendo e ou continuar digitando w você percebe que você pode saltar entre as palavras, e é muito mais rápido do que apenas digitando l. Agora, o próximo passo é o Modelo de Operador-Motion. Esta é realmente uma das principais razões por que o Vim pode ser tão poderoso, e é porque você pode essencialmente compor diferentes elementos em funções mais poderosas, de modo geral quando você faz qualquer coisa no Vim você pode pensar nisso como combinando um operador com um movimento. Até agora temos apenas tratada com movimentos, como HJKL. Eles se movem em torno de você, e, em seguida, b e w, eles também se movem em torno de diferentes maneiras que você, mas nós ainda não passou a ser capaz de apagar as coisas ou mudar as coisas ou outros enfeites, e quando você combina operadores com movimentos, então você é capaz de ter muito mais poderosos efeitos, assim, por exemplo, se eu queria apagar 2 palavras, eu posso usar d para o operador de eliminação, e eu posso adicionar a 2 para indicar que eu quero excluir duas palavras, e então eu incluir um movimento. Eu poderia incluir w dizer excluir duas palavras. Eu poderia usar algo como J dizer excluir descendentes 2 vezes e excluir 2 linhas abaixo de mim. Eu poderia dizer d2b excluir para trás duas vezes, e há ainda mais movimentos do que os que eu mostrei aqui para realmente fazer a sua edição Vim muito mais poderoso. Estes são alguns dos mais populares ou os operadores mais comuns e são bastante fáceis de lembrar também. D para apagar, c para a mudança. C é basicamente a mesma coisa, exceto que como a mudança quando você usa c você automaticamente se colocar em modo de inserção depois. Normalmente, quando você usar a eliminação de usá-lo de modo normal, e depois de eliminar algo que você permanecer no modo normal. Mas se você quer mudar alguma coisa, você pode usar c para apagar alguma coisa e, em seguida, ir imediatamente para o modo de inserção para que você possa começar a digitar e corrigir alguma coisa. Y é para arrancar. É basicamente noção de cópia do Vim. Por exemplo, se eu quiser copiar os próximos 2 palavras que posso fazer y2w ou algo parecido, e v é para destacar, essencialmente. E também o que é muito legal é que se você digitar um operador duas vezes ele vai agir em uma linha inteira, então se eu quiser excluir uma linha inteira Eu posso digitar dd para eliminar toda a linha, ou se eu quiser copiar toda a linha que eu possa usar aa ou algo parecido. Vamos tentar mais um pouco. Há um exercício aqui para um operador de movimento avançada, bem e até mesmo algumas outras coisas que eu não vou cobrir no PowerPoint, hoje, mas você pode se sentir livre para olhar sobre eles mais tarde e brincar com eles e se familiarizar com eles. Operadores e movimentos. Por exemplo, suponha que existem essas duas palavras que você apenas deseja excluir na sentença. O que você quer fazer é que você vai querer certificar-se de que o seu cursor está no início da primeira palavra que deseja excluir, e você pode digitar o d2w, e ele vai apagar essas duas palavras para você. E usando esse comando exata, d2w, pode parecer um pouco complicado e sem sentido, mas que deveria expressar a idéia que você pode compor essas coisas diferentes, e também para o caso você acontecer para estar na situação, então você pode acabar usando dw ou d2w, que eu uso ocasionalmente. Dd e cc eu uso muito mais vezes, pois você pode agir em linhas inteiras. Por exemplo, digamos que eu tenho essa lista aleatória aqui, e talvez eu queira apagar a linha que diz Huskies, porque ele não se encaixa, apenas porque, e eu não quero que ele vá para o modo de inserção depois. Eu quero excluí-lo, caso em que eu poderia digitar dd, e que vai apagar toda a linha. Mas vamos dizer que agora há essa outra linha que deseja excluir mas eu também quero corrigi-lo e reescrevê-lo, caso em que eu vou tentar algo como cc, e que exclui toda a linha, mas me coloca em modo de inserção, como você pode ver, e eu posso corrigi-lo de lá. E há muitas, muitas maneiras diferentes você pode combinar operadores e movimentos, e como você usa Vim mais e mais você aprende mais sobre as formas diferentes Você pode usar esses comandos, e você vai se tornar cada vez melhor. Impressionante, agora aqui estão alguns outros comandos variados que também são muito, muito comumente usados ​​e também irá ajudá-lo a tornar-se melhor no Vim. Por exemplo, falamos sobre minúsculas v para o destaque visual. Podemos também usar V maiúsculo para a linha visuais destaque. Dessa forma, você pode destacar linhas inteiras de uma só vez com muito mais facilidade. Você pode usar o quando você está no modo normal para inserir basicamente uma nova linha abaixo da linha que você está atualmente em e colocá-lo em modo de inserção para começar a digitar. Você pode usar x minúsculo para apagar o caractere que está atualmente sob o cursor. Você também pode usar u para desfazer, que é uma espécie de bom, e você pode usar maiúsculo para adicionar ao final da linha atual, por isso, talvez o cursor está em algum lugar na linha, e você deseja adicionar ao fim da linha. Depois, você pode digitar o capital A para pular imediatamente para o fim da linha e entrar em modo de inserção para que você pode adicionar ao fim da linha. Eu acho que eu tenho mais alguns exercícios para que possamos experimentar. Na verdade, não, eu não sei. Não para aqueles. Mas temos mais alguns exercícios para a próxima seção que vamos ver. Mas esses que você pode experimentar a si mesmo também. Por exemplo, se você digitar v regular, você vai ter destaque regular que você está acostumado a gostar disso. Se você digitar no capital V, você pode obter linha completa destacando assim, ou se eu digitar o que basicamente vai abrir uma nova linha para mim, o que é bem legal. X eu posso usar para apagar os caracteres no cursor. Eu posso pressionar x um monte de vezes e apagar coisas. Eu posso pressionar u para desfazer tudo isso. Um, eu posso digitar uma para ir imediatamente para o fim da linha, e eu também incluiu algumas outras teclas agradáveis que você também pode olhar para após a apresentação de aprender alguns outros comandos. [Estudante] O que é substituição aproximadamente? [Brandon L.] substituição também é muito legal e, basicamente, se você ir a algum lugar, você sempre as pessoas realmente não usá-lo que muito mais nos dias de hoje, mas vocês jamais visto em Microsoft Word se você digitar inserção de repente você entrar neste modo estranho, onde cada personagem que você digita basicamente substitui o próximo personagem? Eu não sei se vocês já vi isso. Isto é semelhante ao que. Por exemplo, se eu quiser substituir o que eu tenho atualmente, por algum motivo Eu posso digitar no capital R, e agora eu vou estar no modo de substituição, como você pode ver no canto inferior esquerdo. Se eu digitar coisas ele substitui as coisas, e eu também pode retroceder, o que é legal, e posso desfazer isso. Eu não uso isso muito frequentemente, mas de vez em quando torna-se acessível. Vamos falar sobre os objetos de texto, que é uma das minhas coisas favoritas sobre Vim, honestamente. Objetos de texto são, basicamente, esta noção de definir algum tipo de pedaço de texto dentro do seu arquivo de texto, e eu vou passar por cima dessas teclas em primeiro lugar, e então eu vou dar-lhe algumas demonstrações para que você possa entender melhor o que isso significa. W refere-se a uma palavra, como um objeto de texto como uma palavra, então alguma palavra que você normalmente conhecemos, e se há sinais de pontuação que é ao lado da palavra então não vai incluir a pontuação geral. Mas, por exemplo, se você quiser incluir a pontuação por algum motivo ou você está fazendo algo que não é Inglês e que pretende incluir todos os personagens que são delineados por espaços em branco você também pode usar o capital W para obter tudo o que está rodeado por espaços em branco. Você também pode usar parênteses para referir-se a um objeto de texto que está dentro de um conjunto de parênteses. Você pode fazer a mesma coisa com colchetes, colchetes, chaves, e citações, bem como, e, finalmente, você também pode usar t para se referir a alguma tag. Deixe-me mostrar-lhe como que realmente joga fora. Por exemplo, este é o meu primeiro exemplo na minha vitrine. Há alguma palavra nesta frase que eu quero mudar, e nós conversamos sobre W sendo usado como um movimento, mas você também pode usá-lo como um objeto de texto assim. Por exemplo, uma maneira que eu poderia mudar o nome de Barack ou modificá-lo, basicamente, é que eu poderia ir para o início da palavra e digite c para a mudança e w por palavra, e que irá apagar a palavra inteira e colocá-lo em modo de inserção. Mas é muito chato para mim ter que ir para o início da palavra o tempo todo. Isso é realmente irritante. Eu não quero ter que fazer isso. Eu posso realmente estar em qualquer lugar dentro de seu nome e digite CIW, eo i significa interior, por isso, se eu digitar CIW ele representa a mudança em uma palavra, ou, em outras palavras, mude a palavra que eu estou atualmente dentro, e ele vai te dar exatamente o mesmo efeito. Você pode corrigir isso. Da mesma forma, talvez eu tenha algum caso como este onde, por algum motivo há alguns delimitadores ou algo assim, ou há alguns sinais de pontuação, e eu queria apagar a coisa toda. Se eu digitar no CIW ele vai apagar o que está dentro desses delimitadores, mas eu quero começar a coisa toda que está rodeado por espaços em branco, para que eu possa usar CIW para apagar a coisa toda. Vou escrever em cinco, fazer a mesma coisa e escreva em seis. Da mesma forma, se eu quiser mudar algo que está dentro dos parênteses Eu posso digitar ci) para apagar tudo o que está dentro dos parênteses e, em seguida, preencher o que eu quero fazer, como int argc, o que você quer fazer, e da mesma forma, a mesma coisa com aspas. Eu posso consertar texto que está dentro de aspas, e eu também pode mudar as coisas que estão dentro de tags. Será que isso faz sentido? Outra coisa que você pode fazer é que você não tem que usar c. Você também pode usar d se você deseja apagar o que está dentro dessas tags. Se eu quiser apagar o texto dentro de uma marca que eu posso usar dit para apagar essa marca. Posso também usar vit para destacar o que está dentro da tag, por exemplo. A outra coisa é em vez de usar i no meio, você também pode usar um, que significa para todos, por isso lembre-se que você usa i ele vai se referir ao objeto de texto ou usar um objeto de texto que está contido dentro de delimitadores, mas se você usar um que irá incluir esse texto, assim como o próprio delimitador. Por exemplo, se eu quero destacar este texto ea tag circundante Eu posso usar cuba, v para o destaque visual, um por todos e, em seguida, t para a marca. Você pode fazer algo assim também. Talvez eu queira excluir esta google.com com as aspas em torno dele, bem como, e eu posso usar algo como da "para apagar tudo isso, por exemplo. Todas as perguntas até agora? Eu percebo que estou dumping sobre um monte de comandos Vim de uma só vez, e este é, basicamente, porque eu quero expô-lo a todos os diferentes comandos e dar-lhe uma introdução para o que esses comandos fazem no vim. Mas o que vai ter que acontecer é quando você voltar você vai ter que escolher lentamente estes comandos, um por um. Você não quer se estressar, porque isso é muito grande. Se você quiser pegar Vim o que você realmente tem que fazer é começar com o primeiro conjunto básico, e eu quebrei-o em aulas para você que tornam mais fácil para você seguir, e tentar dominar cada conjunto de comandos , um por um, um de cada vez. É muita coisa para fazer tudo de uma vez, então o que você deve fazer quando você voltar é ir para a primeira lição, que é HJKL, o modo de inserção, escapar para o modo normal, e salvar e sair, e isso é tudo que você realmente precisa para sobreviver no Vim, e tenha muito, muito confortável com isso. E depois de alguns dias, uma vez que você está muito confortável com isso você deve passar para os operadores de movimento mais avançados, os movimentos mais avançada, e para os operadores e assim por diante e assim por diante. Eu sei que eu estou passando por muita coisa, mas eu quero ficar exposto a um monte de coisas diferentes. Mas no caso de você está pronto para o desafio, eu posso mostrar-lhe como você pode colocar tudo isso em conjunto, utilizando ao máximo o que acabamos de aprender, hoje, e você também pode acompanhar, se quiser, mas eu criei um pouco de exercício aleatória. Suponha que tenhamos algum tipo de lista como esta onde você tem esses blocos com nomes de pessoas, casas, anos, e as concentrações e outros enfeites, e você quer adicionar uma nova entrada para si mesmo. Qual é a melhor maneira de você fazer isso? Vamos fazê-lo assim. Por que não vamos primeiro destaque deste bloco. Você está indo para selecioná-lo, e nós pode pressionar y para arrancar-lo, então agora podemos basicamente copiar e colar este modelo primeiro sem ter que reescrever tudo do zero. Agora vou pressionar j para baixo um monte de vezes para ir para baixo, e eu vou pressionar p para colá-lo. Talvez eu vou adicionar algumas linhas extras de um espaço, e vamos dizer que agora eu quero mudar seu nome para alguém. Então eu posso ir aqui e digite C2W como antes para mudar esse nome. Bob Jones, quem sabe. Talvez se eu quiser mudar de casa eu posso ir para o meio aqui e digite CIW e colocar Cabot House. Aqui pode ser um exemplo de onde você pode querer considerar o uso de o modo de substituição para mudar seu ano da graduação, se quiser, ou também podemos usar CIW também. Não importa. Talvez você queira mudar o seu major. E isso é o que você faz. E talvez eu vou dar-lhe uma demonstração de que eu poderia fazer se eu fosse, se você continuar a aprender comandos mais avançados no Vim porque nós estamos apenas arranhando a superfície aqui, e eu poderia fazer esse tipo de edição ainda mais rápido do que eu já mostrei aqui porque eu sei que mais comandos que não tenham obtido a oportunidade de mostrar-lhe para hoje. Por exemplo, se eu quero destacar isso eu posso fazê-lo assim, mover para baixo. Eu adicionei meu próprio mapeamento basicamente destacar automaticamente coisas para mim e posso-eu não sei. Quer dizer, isso está apenas tentando mostrar-lhe que você pode realmente começar a editar as coisas mais rapidamente, especialmente quando você tem todos esses diferentes campos, e, normalmente, o que você poderia estar fazendo é uma espécie de clique e destacando e digitando. Você pode fazer tudo de uma vez, copiar e colar, se movendo para cima e para baixo entre o arquivo, apenas delimitando coisas, formatação coisas. Tudo isso pode ser feito muito, muito mais rapidamente no vim. Só uma última coisa que eu acho que pode ser muito bom, que é localizar e substituir. Aqueles de vocês que usaram atalhos do Gmail você também vai saber que se você digitar / ele envia-lo para a caixa de pesquisa, e em uma série de diferentes aplicações, em geral, você verá que a barra ou talvez controlar barra ou algo a ver com Slash vai colocá-lo em uma espécie de modo de pesquisa, e que também vem basicamente da Vim essencialmente porque o operador barra ou o comando barra permite que você insira algum tipo de cadeia de caracteres que você pode usar para pesquisar dentro do documento. Você pode n eo capital N para ir para a próxima ea ocorrência anterior, e você também pode usar algo semelhante ao procurar e substituir no documento. Vou te dar uma demonstração do que pode ser feito. Talvez se eu quiser encontrar todas as instâncias do puxão cadeia dentro deste documento Eu posso digitar / arranco, como você pode ver no canto inferior esquerdo, e quando digito entrar destaca todas as instâncias. Eu posso usar basicamente n saltar para trás e para frente entre todos os casos diferentes, e vamos supor que eu quero procurar e substituir puxão com alguma palavra aleatória que também no documento. I pode pressionar: para começar a digitar em algum tipo de comando dentro Vim, algum comando que é mais sofisticado do que se movimentar ou excluir ou algo parecido. Eu escrevo o sinal% a referir que eu quero usar este comando substituição em todo o documento. Digite s para substituição. Isto vem de PEARL essencialmente. E este próximo comando é um comando bastante normal que você vai encontrar em PEARL vez e em outras linguagens de programação que você vai provavelmente começar a aprender como você faz mais ciência da computação, e eu basicamente pode usar / digitar a /, digite a palavra que deseja localizar e substituir e, em seguida, digite outro / e digitar qualquer palavra que eu quero substituir a palavra com. Quem sabe, talvez nyancat. Eu faço isso, e então você vai ver que tudo foi substituído. Mas você vai perceber que há essa palavra aqui. Por alguma razão, alguns dos exemplos de puxão são substituídos, mas não todos, e isso é porque a forma como este tipo de linguagem foi escrito não só no vim, mas em outros lugares é que, quando você executar o comando de substituição ele só irá substituir a primeira ocorrência da palavra em cada linha, por isso, se eu quero realmente substituir todas as ocorrências da palavra em cada linha então eu tenho que fazer a mesma coisa, mas acrescentar bandeira ag no final, que significa global, e, em seguida, que vai realmente substituir todas as instâncias. E uma vez que você aprender as expressões regulares, há realmente um seminário CS50 sobre expressões regulares, por isso, se você está curioso sobre as expressões regulares você também pode tirar desse seminário e aprender mais. Mas por exemplo, digamos que eu tenho uma lista de nomes como esta, e eu quero reorganizar-lo, de modo que em vez de ter sobrenome, vírgula, primeiro nome Eu quero reorganizar-lo assim que diz o primeiro nome, o espaço, sobrenome. Você pode realmente usar este comando aqui fazer, essencialmente, que para você, assim como você pode ver aqui começamos com um s, o que significa que nós queremos fazer um localizar e substituir, e então eu adicionei um sinalizador chamado \ v, que é algo chamado esta bandeira mágica Vim em que permite que você faça as expressões regulares com mais facilidade. Então a partir daí nós combinamos basicamente para toda a linha única que é da forma de um conjunto de palavras, vírgula, espaço e um conjunto de palavras ou um conjunto de letras. \ W + basicamente significa um ou mais caracteres, e os parêntesis são utilizados para captar estes grupos para que eu possa consultá-las mais tarde. Como você pode ver, uma vez que estes captura dois blocos de palavras que são separadas por uma vírgula, espaço então o que queremos substituí-lo com é que eu uso \ 2 e \ 1 remeter para as palavras que foram capturados no comando real descoberta, e assim por \ 2 refere-se a tudo o que está contido no segundo conjunto de parênteses, \ 1 refere-se a tudo o que está contido no primeiro conjunto de parênteses, e como você pode ver, eu estou colocando 2 antes de 1 de separados por um espaço para tentar mudar o primeiro nome antes do sobrenome. Será que isso faz sentido? E o que posso fazer é que eu posso esconder estes primeiros, então eu só executar este comando sobre estas linhas, e então eu vou digitar este comando. Você pode ver que ele faz exatamente como dividido. E, novamente, isso é apenas arranhando a superfície, e se você vai para o seminário expressão regular, então eu tenho certeza que você vai aprender coisas muito mais diferentes que você pode fazer com expressões regulares, e isso, basicamente, começa a sugerir o que você pode realmente fazer com Vim se você realmente começar a se tornar um mestre nisso. Talvez você queira refazer alguma coisa, e você quiser encontrar todas as instâncias de alguma função que segue algum tipo de padrão de nomenclatura. Você quer mudar a maneira que está nomeado. Você pode escrever algum tipo de comando como este para fazer isso por você, e esse é o tipo de flexibilidade que você pode começar dentro de Vim que você simplesmente não vai conseguir em outros editores de texto. Isso cobre basicamente todas as coisas que eu queria ensinar-lhe hoje, em seminário de hoje, mas, novamente, eu realmente quero salientar que, se você quiser pegar o Vim é verdade que há uma curva de aprendizado um pouco maior no início. No começo você vai ser um pouco menos produtivos do que você provavelmente seria de outra forma, mas se você ficar com ela dentro de alguns dias ou algumas semanas, dependendo de quão rápido você aprende, você vai se tornar muito, muito mais rápido, e eu tentei dar-lhe uma demonstração sobre o que é capaz de Vim, mas eu realmente não ter a chance de mostrar-lhe o que acontece quando eu-for normalmente exemplo, na classe I tipo em minhas anotações com Vim. Isso porque eu posso trabalhar muito mais rápido no Vim do que eu com qualquer outro programa. É, literalmente, um aumento de produtividade de 2 ou 3 vezes no Vim comparação com outros programas, não só com a velocidade de edição de texto, mas também na forma como eu posso me movimentar o documento e do jeito que eu possa acessar outros arquivos no meu computador e salte entre eles e assim por diante e assim por diante. É só um realmente, realmente enorme aumento de produtividade. Mas quando você está aprendendo, você quer ter certeza de que você aprende uma coisa de cada vez, e tente não sobrecarregar-se com muitos comandos diferentes porque há um monte de comandos e um monte de diferentes atalhos que você pode aprender no vim. Você quer pegar um pouco de cada vez e ao longo dos anos gradualmente acumular uma compreensão cada vez maior de Vim. Se você quiser continuar a aprender mais, estes são alguns dos tópicos mais avançados você pode continuar a aprender sobre, e mesmo este mal arranha a superfície. Aqui estão alguns plugins populares que você pode se sentir livre para check-out e Google-los e brincar com eles, se você quiser e só ver que tipo de plugins estão lá fora. E, em seguida, no final da presente PowerPoint, incluo um grupo de ligações a vários recursos que você pode usar para aprender. Aqui estão um monte de links diferentes que você pode usar para começar com o Vim. Eles têm diferentes tutoriais e outros enfeites, e, finalmente, essas são algumas coisas mais avançadas que você pode usar verificar igualmente para fora, bem como, alguns moldes de tela e algumas técnicas mais avançadas no Vim e também algumas peças diferentes do código-fonte, você pode olhar para cima no GitHub só de olhar para os arquivos de configuração de outras pessoas ou olhar para plugins no vim e assim por diante e assim por diante. Isso é tudo que eu tenho para você. [CS50.TV]