ti-enxame.com

Como saio do editor do Vim?

Estou preso e não posso escapar. Diz:

"type :quit<Enter> to quit VIM"

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

3294
jclancy

Acerte o Esc para entrar no modo "Normal". Então você pode digitar : para entrar em "Modo de linha de comando". Dois pontos (:) aparecerão na parte inferior da tela e você poderá digitar um dos seguintes comandos. Para executar um comando, pressione o Enter chave.

  • :q to quit (abreviação de :quit)
  • :q! para sair sem salvar (abreviação de :quit!)
  • :wq para escrever e sair
  • :wq! para escrever e sair mesmo que o arquivo tenha apenas permissão de leitura (se o arquivo não tiver permissão de gravação: force write)
  • :x para escrever e sair (semelhante a :wq, mas apenas escreva 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 (ou seja, saia com erro)

Você também pode sair do Vim diretamente do "modo normal", digitando ZZ para salvar e sair (o mesmo que :x) ou ZQ para apenas sair (o mesmo que :q!). (Note que o caso é importante aqui. ZZ e zz não significam a mesma coisa.)

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

4468
dirvine

Antes de digitar um comando, pressione o Esc tecla . Depois de entrar, clique no Return confirmar.

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

A maioria dos comandos tem abreviações, com a parte opcional entre colchetes: c[ommand].

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

Quebra de segurança (falha se houver alterações não salvas):

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

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

  • :conf[irm] q[uit] * Saia, mas dê o prompt quando houver alguns buffers que foram alterados.
  • :conf[irm] xa[ll] * Escreva todos os buffers alterados e saia do Vim. Criar um prompt quando alguns buffers não puderem ser gravados.

Gravar (salvar) alterações e sair:

  • :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 grava até arquivos somente para leitura. :wqa[ll]! * para todas as janelas.
  • :x[it], ZZ (com detalhes ). Escreva o arquivo somente se foi alterado e saia, :xa[ll] * para todas as janelas.

Descartar 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 ocultas) são perdidas.

Pressione Return para confirmar o comando.

Esta resposta não faz referência a todos os comandos e argumentos de gravação e saída do Vim. Na verdade, eles são referenciados no documentação do Vim .

Vim tem extensa ajuda interna, tipo Esc:helpReturn para abri-lo.

Esta resposta foi inspirada no outro , originalmente de autoria de @dirvine e editado por outros SO usuários. Eu incluí mais informações da referência do Vim, SO comentários e algumas outras fontes. Diferenças para Vi e Vim são refletidas também.

159
Nick Volynkin

Imagens valem mil comandos e opções Unix:

Enter image description here

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

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

Ao iniciar, o vi entra no modo COMMAND, onde você pode digitar short, 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: append after o cursor
  • A: acrescentar no final da linha
  • o: open uma nova linha abaixo da linha atual
  • O: open 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 quaisquer modificações e quit
  • 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.

Por fim, 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 tela. 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 você 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.

135
Gergely

Se você quiser sair sem salvar no Vim e se o Vim retornar um código de saída diferente de zero, você poderá usar :cq.

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

71
Sue Spence

Isso é para o pior cenário de sair do Vim se você quiser sair, 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-cEnterEnterviname__EnterCtrl-\Ctrl-n:qa!Enter

Isso deve te tirar a maior parte do tempo.

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

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

  • Qappendname__Enter

  • iname__Ctrl-ogQname__Ctrl-r=Ctrl-k (graças a porges para este caso)

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


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

EscEscEsc:qa!Enter

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

viname__Enter:qa!Enter

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

viname__EnterEscEscEsc:qa!Enter

40
Heikki Naski

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

36
wsams

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

modo de entrada - tudo o que você digita, todos os pressionamentos de tecla são ecoados na tela.

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, um : aparece na parte inferior da tela. 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 entrada.

saindo do modo ex

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

  2. Vá para o modo ex pressionando o botão : chave

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

    :q - sair :q! - sair sem salvar :wq - salvar e sair ou escrever e sair :wq! - mesmo que wq, mas forçar a gravação no caso de as permissões do arquivo serem íntegras :x - escrever e sair :qa - sair de tudo. útil quando vários arquivos são abertos como: vim abc.txt xyz.txt

saindo do modo de comando

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

  2. Pressione capital ZZ (shift zz) - salve e saia

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

27
tovishalck

Depois de bater ESC (ou cmd + C no meu computador) você deve bater : para o comando Avisar para aparecer. Então, você pode inserir 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, digite ! diretamente após o quit (ou seja, :quit!).

25
deleteMe

Na verdade, é incrivelmente fácil sair do vim.

Pressione Escape, vire duas vezes, chute o gato, faça a xícara de chá perfeita, corra quatro minutos , suba o everest, faça o Kessel Run em menos de 12 parsecs , resgate o Kobayashi Mar , reivindique o trono de ferro , alcance paz mundial , pressione :qEnter

18
Caltor

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

16
Bjørn van Dommelen

Eu gostaria de adicionar meus dois centavos sobre isso. A pergunta foi feita aqui .

O comando q com number fecha a divisão dada nessa posição.

:q<split position> ou :<split position>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 (Split 3).

5
Subash

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

Ctrl -> +Z -> +X -> +C
5
Alimov Shohrukh