Você está logado dentro do terminal e, de repente, tem a necessidade de fazer alterações nos arquivos de texto. Todas as vezes que precisar fazer isso, a gente tem a necessidade de utilizar um editor de texto. O Linux possui diversos editores de texto, entre eles nós temos o VIM, o Emacs, o NANO e uma série de outros que você pode utilizar tanto no terminal Shell como através da interface gráfica. Eu vou mostrar para vocês hoje o editor de texto VIM, um dos editores mais utilizados dentro das operações de edição de arquivos de configuração, criação de programas, criação de scripts em ambientes Linux. O que é o VIM? O VIM é um dos maiores editores de textos existente hoje no Linux. Ele tem o poder de identificar diretamente o tipo de arquivo através da sua extensão. Ele permite você ter agilidade, velocidade e conseguir desenvolver programas e scripts e alterar conteúdo de arquivos de forma muito fácil e rápida. Ele é um dos editores mais requeridos dentre as certificações internacionais de Linux, e, também, ele é o editor que permite você criar diversas configurações personalizadas na hora de fazer o uso e operar o VIM. Imagine o seguinte: você está logado dentro do sistema e precisa alterar um arquivo. Nós não temos a interface gráfica dentro do Linux, nós não temos como clicar em um mouse e abrir um arquivo e editá-lo, por exemplo, num bloco de notas ou no Word. O que você tem é a necessidade de usar um editor que funcione no ambiente Shell. E o VIM, certamente, vai ser uma das melhores escolhas que você vai fazer. Existem dois tipos básicos de uso do VIM: podemos utilizar o VIM, que é o VI, apenas, que é o VI puro, ou você pode utilizar o VIM utilizando uma máscara melhorada, que é o VIM, que significa "VI melhorado", do português, ou "VI Improved". Para a gente poder entender um pouco mais do VI ou VIM, nós vamos usá-lo via linha de comando. Aqui no terminal, Eu vou executar o comando "vi" e vou dar um enter. Por padrão, quando executo o comando "vi", ele traz para mim um arquivo sem nenhum tipo de informação, sem nenhum nome. Aqui, nós vemos a configuração do VI, ele traz até mesmo o nome "VI Improved", mas a máscara melhorada ainda não está aplicada no VI padrão. O VI padrão do Debian é chamado de "VI Tiny", significa que alguns comandos não vão funcionar como funcionam nos editores de texto comuns. Exemplo: se você quiser apagar o conteúdo de um arquivo, você, geralmente, pressiona backspace. O backspace não funciona aqui, dentro do VIM. Se você quiser descer nas linhas de um arquivo, você usa, geralmente, seta para baixo e seta para cima. A seta para baixo e a seta para cima não funcionam dentro do VI Tiny. Para que esses comandos funcionem dentro do VIM, você precisa instalar a máscara chamada "Environment", que, aí, você traz as melhorias para o VIM. Vamos aprender, então, a utilizar o VI Tiny, que é o VI Puro, o VIM padrão do Debian e da maioria das distribuições Linux. Aqui dentro do VIM, eu tenho algumas informações importantes. Todas as vezes que nós entramos no VIM, ele, por padrão, usa o "modo comando". O VIM tem dois módulos de operações principais: um é o "modo comando", que pode ser acionado pela tecla ESC do seu teclado, e o outro é o "modo de inserção", que podem ser acionados pelas teclas I, Insert, A ou O. Falaremos disso depois. Aqui, eu já entrei no modo comando. Isso significa que eu posso imputar uma série de comandos para esse editor. E quais seriam esses comandos? Por exemplo, eu posso salvar um arquivo e o VI entende que é um comando. Eu posso substituir um caractere aqui dentro e ele vai entender que é um comando. Eu posso, por exemplo, sair do próprio VI e ele vai entender que é um comando. Eu posso copiar uma linha, deletar uma linha inteira, copiar uma palavra, deletar uma palavra, tudo isso ele entende que são comandos para o VI. Então, se eu não estiver no modo de inserção, que é o modo o qual eu imputo os dados, eu insiro dados dentro do arquivo, eu posso estar no modo de comando. Existem outros modos do VIM? Existem. Mas esses são os modos principais. Uma vez aqui dentro, eu tenho algumas informações importantes. Ele diz para mim: "pressione :q + enter para eu sair desse arquivo". ":help" e o tipo de informação que eu quero para procurar ajuda. Eu tenho aqui, por exemplo, para não citar as informações por padrão. Então, todas as vezes que eu quiser usar as opções de comando do VIM, eu tenho que usar os dois pontos. Então, a ordem é tecla ESC, no canto superior esquerdo do seu teclado, dois pontos, perceba que ele escreveu os dois pontos aqui embaixo, e o comando que eu quero. Vamos imaginar que eu queira sair desse arquivo. "Q" de quit. Pronto, eu voltei para o terminal. Um detalhe importante é que toda vez que eu abro um arquivo, simplesmente passando o VI, ele não tem nome. Ele é um arquivo totalmente inexistente. Existe um buffer. O que é um buffer? Basicamente é um ambiente que o VI vai armazenar tudo aquilo que eu fizer em memória dentro do ambiente, mas ele não vai gravar nada no disco. Depois, ele vai despejar tudo isso dentro do seu HD, caso você salve esse arquivo. Ok, vamos voltar aqui para o editor. "vi" e enter. Perceba que se eu der um I de inserir, ele não fez nada. Por quê? Porque eu estou usando o VI Tiny, o VI padrão. Esse VI não é muito amigável e vocês vão ter, certamente, grande dificuldade para poder operá-lo. Então, o que é recomendado? Que a gente instale o VIM, que traz uma máscara chamada "Runtime", que, automaticamente, incompatibiliza o VIM com vários outros editores. Então, passará a funcionar seta para baixo para descer no arquivo, seta para cima para subir, seta para a esquerda para ir à esquerda, seta para direita para ir à direita, backspace para apagar e uma série de outras teclas funcionarão como funcionam, por exemplo, no Word, que é outro editor de arquivos, no bloco de notas e assim por diante. Eu vou sair de dentro do editor agora, vou instalar essa máscara para que a gente possa ter um pouco mais de flexibilidade nas operações dentro do VIM. "ESC :q" E vamos instalar. "apt install vim" Por padrão, todas as vezes, agora, que eu chamar o comando VI, na verdade, ele vai ser um atalho para o comando VIM. Quando eu dou um "vi" e um enter, na verdade, ele chamou o comando "VIM". Você pode olhar aqui e falar: "mas não mudou nada." Eu vou te provar que mudou. Quando nós pressionarmos a tecla I de inserir, agora, ele escreveu lá embaixo: "Inserção". Quando não tínhamos essa máscara instalada, nós pressionamos I e não tinha acontecido nada, mas ele tinha entrado no modo de inserção. A diferença agora é que esse VI é mais amigável, esse VIM é mais friendly. Ele é muito mais fácil de usar. Vamos imputar aqui algumas informações. Todas as vezes que eu pressiono I, ele entra no modo inserção. Pode perceber que, aqui embaixo, escreveu "Inserção" e eu posso digitar qualquer coisa aqui dentro. O Linux é um sistema open source. A GPL possui 4 liberdades principais. O rato roeu a roupa do rei de Roma. Eu posso inserir qualquer informação aqui dentro. Nesse momento, esse arquivo não tem um nome. Todas as informações são armazenadas no buffer do VI. Imagine que você acabou de abrir o bloco de notas e esse bloco de notas você não salvou ainda com nenhum nome. É o mesmo critério. Tudo o que você insere ali não está sendo salvo. Você tem um arquivo no bloco de notas sem títulos Para que possa dar um nome àquele arquivo dentro do bloco de notas do Windows, por exemplo, você teria que "salvar como". Esse é o mesmo processo dentro do VI. Toda vez que eu abro o VI e não informo o nome de um arquivo, para que eu possa salvar todas as modificações que fiz, eu preciso "salvar como". E como eu "salvo como" dentro do VI? Simples. Você vai pressionar a tecla ESC. Automaticamente, nós entramos no modo comando. ":w" W é o comando para gravar. Todas as vezes que você quiser gravar uma modificação dentro do VI, o comando que você vai dar é W, de "write". E você vai informar para o VI onde você quer salvar esse arquivo e qual o nome que você quer dar para ele. Então, eu quero salvar esse arquivo dentro do diretório "/tmp/". Vou dar o nome de "teste.txt". E vou dar o enter. Pronto. Perceba que ele escreveu as informações aqui em baixo O novo arquivo "/tmp/teste.txt" possui 3 linhas e 110 bytes gravados. Maravilha! Abri o VIM, entrei no modo sessão coloquei as informações lá dentro e salvei como "/tmp/teste.txt" Feito tudo isso, eu vou sair desse arquivo. ESC, ":q" de "quit". Voltamos para o terminal. Ce nós dermos o comando "cat/tmp/teste.txt", lá está todo o conteúdo que havia inserido dentro do arquivo no VIM. Agora, eu quero editar esse arquivo novamente. O que eu faço? Agora sim, eu posso dar um "vi/tmp/teste.txt" e, automaticamente, o conteúdo do arquivo foi aberto. Esse conteúdo foi aberto no modo de comando e significa que, para eu poder inserir novas informações, eu tenho três ou quatro opções possíveis. Eu posso pressionar a letra I de inserção. Perceba que ele escreveu inserção aqui embaixo e o cursor permaneceu parado no lugar dele. Vou a pressionar ESC e ESC. Posso pressionar a tecla A. Ele entrou no modo de inserção, mas o cursor avançou um caractere. Vou pressionar ESC e posso pressionar a letra O. Ele entrou no modo de inserção e o cursor inseriu uma nova linha em branco. Esses são os três modos que eu consigo entrar nesse modo de inserção utilizando A, I de Insert ou O de dentro do VIM. Agora, existem também outros modos de operação no VIM, como o modo de visualização. Para eu entrar no modo de visualização, eu vou apertar a letra V. Ele escreve "visual". O modo de visualização permite com que, por exemplo, eu selecione linhas. Eu consigo selecionar, por exemplo, essas três linhas e, uma vez selecionadas essas três linhas, eu posso executar qualquer comando. Eu posso deletar essas três linhas de uma vez. Eu posso copiar essas três linhas de uma vez. Então, vou pressionar a tecla ESC e a letra V de visualização. Imagine que eu queira copiar todo o conteúdo da linha 1. Eu vou selecionar com a seta para frente e pressiono a tecla Y. Pronto, copiou a linha. E para eu colar, eu posso ir no lugar que eu quero, no final do arquivo, apertar a tecla ESC para habilitar o modo comando e pressionar a letra P. Ele copiou a linha número 1 e colou a linha aqui embaixo. Isso no modo de visualização do VI. Nós também podemos alternar entre esses três modos, à medida que seja necessário. Por exemplo, eu posso dar I, entrei no modo de inserção, dar ESC, entrei no modo de comando e V para entrar no modo de visual. Detalhe importante: se você está no modo comando e aperta a letra V, ele entra no modo visual. Se você está no modo comando e aperta a letra I, ele entra no modo de inserção. A letra A entra no modo de inserção. A letra O entra no modo de inserção. Agora, se eu estou no modo de inserção e eu aperta a letra V, ele vai digitar a letra V. Se eu apertar a letra I, ele vai digitar a letra I. Então, a gente precisa entender em qual modo que nós estamos para saber se eu estou inserindo uma informação ou se eu estou enviando um comando. Além disso, eu posso, simplesmente, estar dentro desse arquivo e, imagine que essas duas linhas novas, tanto essa linha aqui quanto essa linha, eu não queira salvar esse conteúdo. Eu abri o arquivo. Puts, fiz uma edição errada. Eu não queria fazer essa alterações. Eu quero sair desse arquivo sem salvar. Nós já vimos que o comando que utilizamos para sair do VI é o Q. Então, se eu vier aqui, pressionar ESC, ":q" ele não deixa eu sair. Por que isso acontece? Isso acontece porque todas as vezes que você abre o editor VI e você entra no modo de inserção, obrigatoriamente, ele entende que você abriu o arquivo, você entrou no modo de inserção, você inseriu dados e você não quer salvar, é isso mesmo? Se a resposta para essa pergunta for: "sim, é isso mesmo", você precisa forçar o comando dentro do VI. E o caractere que a gente usa para forçar um comando dentro do VI é o caractere "!". Então, eu vou vir aqui no terminal, vou dar um ESC, ":". O comando que eu quero é "q" para sair e eu tenho que forçar com "!" para poder sair desse arquivo sem salvar essas duas linhas. Detalhe importante: a exclamação não é usada apenas para sair sem salvar. Ela é um caractere para forçar qualquer comando dentro do VI. Então, por exemplo, eu posso querer gravar forçando, "w!". Eu posso querer sair e salvar forçando. W para gravar. Q para sair. E "!". Então, a exclamação simplesmente força a execução de um comando. Nesse nosso exemplo, eu quero que ele force sair sem salvar essas duas linhas aqui que nós inserimos. E aí, eu uso ESC, ":q!" Pronto, saí do arquivo. Se eu voltar dentro do arquivo novamente, percebam que as três ou as duas últimas linhas que nós havíamos inserido não foram salvas. Esse é o VI, um dos editores de texto mais utilizados no Linux. Você viu como abrir, como sair, como entrar no modo comando, como entrar no modo inserção e como entrar no modo de visualização. Entendendo uma vez esses módulos, certamente você, em pouco tempo, vai passar a dominar o maior editor de textos dos ambientes Linux.