Como sair do editor Vim?

Estou preso e não posso escaping. Diz:

"type :quit to quit VIM" 

Mas quando eu digito isso simplesmente aparece no corpo do object.

   

Pressione a tecla Esc para entrar no “modo normal”. Então você pode digitar : para entrar no “Modo de linha de comando”. Dois pontos (:) aparecerão na parte inferior da canvas e você poderá digitar um dos seguintes comandos. Para executar um comando, pressione a tecla Enter .

  • :q para sair (abreviação de :quit )
  • :q! para sair sem salvar (abreviação de :quit! )
  • :wq para escrever e sair
  • :wq! escrever e sair mesmo que o arquivo tenha apenas permissão de leitura (se o arquivo não tiver permissão de gravação: forçar gravação)
  • :x para escrever e sair (semelhante a :wq , mas só escreve se houver alterações)
  • :exit para escrever e sair (o mesmo que :x )
  • :qa para sair de todos (abreviação de :quitall )
  • :cq para sair sem salvar e fazer com que o Vim retorne um erro diferente de zero (isto é, saia com erro)

Você também pode sair do Vim diretamente do “Modo de comando” digitando ZZ para salvar e sair (o mesmo que :x ) ou ZQ para sair (o mesmo que :q! ). (Note que o caso é importante aqui. ZZ e zz não significam a mesma coisa.)

O Vim tem ampla ajuda – que você pode acessar com o comando :help – onde você pode encontrar respostas para todas as suas perguntas e um tutorial para iniciantes.

Antes de digitar um comando, pressione a tecla Esc . Depois de entrar, aperte o botão Retornar para confirmar.

Esc finaliza o comando atual e alterna o Vim para o modo normal . Agora, se você pressionar :, o : aparecerá na parte inferior da canvas. Isso confirma que você está digitando um comando e não está editando o arquivo.

A maioria dos comandos tem abreviaturas, com a parte opcional entre colchetes: c[ommand] .

Comandos marcados com ‘*’ são somente Vim (não implementados no Vi).

Safe-quit (falha se houver alterações não salvas):

  • :q[uit] Sai da janela atual. Saia do Vim se esta for a última janela. Isso falha quando as alterações foram feitas no buffer atual.
  • :qa[ll] * Saia de todas as janelas e do Vim, a menos que existam alguns buffers que foram alterados.

Prompt-quit (solicita se houver alterações não salvas)

  • :conf[irm] q[uit] * Saia, mas avisa quando existem alguns buffers que foram alterados.
  • :conf[irm] xa[ll] * Escreve todos os buffers alterados e sai do Vim. Criar uma solicitação quando alguns buffers não puderem ser gravados.

Escreva (salve) alterações e saia:

  • :wq Escreva o arquivo atual (mesmo que não tenha sido alterado) e saia. Escrever falha quando o arquivo é somente leitura ou o buffer não tem um nome. :wqa[ll] * para todas as janelas.
  • :wq! O mesmo, mas escreve até arquivos somente para leitura. :wqa[ll]! * para todas as janelas.
  • :x[it] , ZZ (com detalhes ). Escreva o arquivo somente se ele foi alterado e saia :xa[ll] * para todas as janelas.

Descartar as alterações e sair:

  • :q[uit]! ZQ * Sair sem escrever, também quando os buffers visíveis tiverem alterações. Não sai quando há buffers ocultos alterados.
  • :qa[ll]! * :quita[ll][!] * Saia do Vim, todas as alterações nos buffers (incluindo oculto) são perdidas.

Pressione Return para confirmar o comando.

Essa resposta não faz referência a todos os comandos e argumentos do Vim write e do quit. Na verdade, eles são referenciados na documentação do Vim .

O Vim tem uma ajuda interna extensa, digite Esc :help Retornar para abri-lo.

Essa resposta foi inspirada na outra , originalmente criada por @dirvine e editada por outros usuários do SO. Incluí mais informações da referência do Vim, comentários sobre SO e algumas outras fonts. Diferenças para Vi e Vim também são refletidas.

Imagens valem mil comandos e opções do Unix:

Digite a descrição da imagem aqui

Eu desenho isso para os meus alunos a cada semestre e eles parecem entender o vi depois.

vi é uma máquina de estados finitos com apenas três estados.

Ao iniciar, o vi entra no modo COMMAND, onde você pode digitar curtas, alguns comandos de caracteres, cegamente . Você sabe o que está fazendo; isso não é para amadores.

Quando você quiser realmente editar o texto, você deve ir para o modo INSERT com algum comando de um caractere:

  • i: vá para INSERT no lugar do cursor
  • I: vá para o modo INSERIR no início da linha
  • a: acrescentar depois do cursor
  • A: acrescentar no final da linha
  • o: abrir uma nova linha abaixo da linha atual
  • O: abre uma nova linha no lugar da linha atual

Agora, respondendo a pergunta: saindo.

Você pode sair do vi do modo EX:

  • q: se você não fez nenhuma modificação, ou salvou-as de antemão
  • q !: ignora qualquer modificação e sai
  • wq: salve e saia
  • x: isso é igual a wq

w e x aceitam um parâmetro de nome de arquivo. Se você iniciou o vi com um nome de arquivo, não é necessário devolvê-lo aqui novamente.

Finalmente, o mais importante: como você pode alcançar o modo EX?

O modo EX é para comandos longos que você pode ver digitando na linha inferior da canvas. No modo COMMAND, você pressiona dois pontos, : , e dois pontos serão exibidos na linha inferior, onde você pode digitar os comandos acima.

No modo INSERT, você precisa pressionar ESC, ou seja, o botão Escape, indo para o modo COMMAND, e depois: para ir para o modo EX.

Se não tiver certeza, pressione ESC e isso levará você ao modo de comando.

Portanto, o método robusto é ESC -: – x-Enter, que salva seu arquivo e sai.

Se você quiser sair sem salvar no Vim e fazer com que o Vim retorne um código de saída diferente de zero, você pode usar :cq .

Eu uso isso o tempo todo porque eu não posso ser incomodado para mudar de turno para ! . Costumo canalizar coisas para o Vim, que não precisam ser salvas em um arquivo. Também temos um invólucro SVN ímpar no trabalho que deve ser encerrado com um valor diferente de zero para abortar um check-in.

Isso é para o pior cenário de sair do Vim se você quiser, não tem idéia do que você fez e não se importa com o que acontecerá com os arquivos que você abriu.

Ctrl-c Enter Digite vi Digite Ctrl- \ Ctrl-n :qa! Entrar

Isso deve te tirar a maior parte do tempo.

Alguns casos interessantes em que você precisa de algo assim:

  • i Ctrl-o vg (você entra no modo de inserção, depois no modo visual e depois no modo de operador pendente)

  • Qappend Enter

  • Ctrl-o gQ Ctrl-r = Ctrl-k (graças aos porges para este caso)

  • :set insertmode (este é um caso quando Ctrl- \ Ctrl-n retorna ao modo normal)


Edit: Esta resposta foi corrigida devido aos casos acima. Costumava ser:

Esc Esc Esc :qa! Entrar

No entanto, isso não funciona se você tiver entrado no modo Ex. Nesse caso, você precisaria fazer:

vi Digite :qa! Entrar

Então, um comando completo para “Eu não quero saber o que fiz e não quero salvar nada, só quero sair agora!” seria

vi Entrar Esc Esc Esc :qa! Entrar

Caso você precise sair do Vim no modo easy (usando a opção -y ), você pode entrar no modo Vim normal pressionando Ctrl + L e qualquer uma das opções normais de saída funcionará.

Depois de apertar ESC (ou cmd + C no meu computador) você deve pressionar : para o prompt de comando aparecer. Então, você pode entrar em quit .

Você pode descobrir que a máquina não permitirá que você saia porque suas informações não foram salvas. Se você quiser sair de qualquer maneira, entre ! diretamente após o quit (ou seja :quit! ).

O Vim possui três modos de operação: modo de input, modo de comando e modo Ex.

Modo de input – tudo o que você digita, todos os pressionamentos de tecla são ecoados na canvas.

Modo de comando ou modo de escape – tudo o que você digita neste modo é interpretado como um comando.

Modo Ex – este é outro editor, ex. É um editor de linhas. Ele funciona por linha ou com base em um intervalo de linhas. Neste modo, a : aparece na parte inferior da canvas. Este é o ex editor.

Para sair do Vim, você pode sair enquanto estiver no modo ex ou no modo de comando. Você não pode sair do Vim quando estiver no modo de input.

Saindo do modo ex

  1. Você precisa ter certeza de que está no modo de comando. Para fazer isso, basta pressionar a tecla Esc .

  2. Vá para o modo ex pressionando a tecla :

  3. Use qualquer uma das seguintes combinações no modo ex para sair:

    :q – sair :q! – saia sem salvar :wq – save & quit ou write & quit :wq! – mesmo que wq, mas forçar a gravação no caso de permissions de arquivo serem somente leitura :x – write & quit :qa – sai de todos. útil quando vários arquivos são abertos como: vim abc.txt xyz.txt

Sair do modo de comando

  1. Pressione a tecla de escape. Você provavelmente já fez isso se estiver no modo de comando.

  2. Pressione o botão ZZ ( shift zz ) – salve e saia

  3. Pressione capital ZQ ( shift zq ) – saia sem salvar.

Eu tenho o Vim instalando um cliente Git no Windows. :q não sairia do Vim para mim. :exit fez no entanto …

Eu gostaria de acrescentar meus dois centavos nisso. A pergunta foi feita aqui .

O comando q com número fecha a divisão dada nessa posição.

:q ou :q fechará a divisão nessa posição.

Digamos que o layout da sua janela do Vim seja o seguinte:

 ------------------------------------------------- | | | | ------------------------------------------------- | | | | | | | | | Split 1 | Split 2 | Split 3 | | | | | ------------------------------------------------- 

Se você executar o comando q1 , ele fechará a primeira divisão. q2 fechará a segunda divisão e vice-versa.

A ordem da posição de divisão no comando quit não importa. :2q ou :q2 fechará a segunda divisão.

Se a posição dividida que você passar para o comando for maior que o número de divisões atuais, ela simplesmente fechará a última divisão.

Por exemplo, se você executar o q100 na configuração da janela acima, onde houver apenas três divisões, ele fechará a última divisão (Divisão 3).

Aqui está como você pode sair do Vim. Pressione Ctrl e ‘Z’ e depois ‘X’ e ‘C’.

 Ctrl -> +Z -> +X -> +C 

Pressionando ESC (ou Control + C ), você digita :q onde q significa quit .

Você pode esperar que a máquina não permita que você saia porque você não salvou o que está trabalhando. Se neste caso, você deve digitar :wq para salvar e sair ou :q! para sair sem salvar.