Como fechar o vim a partir da linha de comando?

46

Eu sei que isso é mais uma questão geral de Linux, mas w / e. Então, quando entro em um programa como o vim no prompt de comando, ele exibe todo o texto do arquivo e posso editá-lo etc. Mas não consigo descobrir como fechar ou salvar o arquivo e voltar ao prompt de comando sem matar o processo. Qualquer ajuda é apreciada.

Vamos almoçar
fonte

Respostas:

72

No vim, existem 3 modos diferentes:

  • Inserir - permite digitar e editar normalmente
  • Visual - usado para selecionar copiar / colar etc.
  • Normal - usado para comandos

Para voltar ao modo normal, você sempre pode pressionar esc.

Quando estiver no modo Normal Pressione :para iniciar seu comando (você o verá aparecer no canto inferior esquerdo). Os seguintes comandos estão relacionados à saída do vim:

  • :q - saia se nenhuma alteração for feita
  • :q! - saia e destrua quaisquer alterações feitas
  • :wq - gravar alterações (salvar) e sair
  • :x- semelhante a :wq, somente escreva o arquivo se forem feitas alterações e saia
jondavidjohn
fonte
4
e :xé um atalho para:wq
Ward Muylaert 02/02
2
Você acabou de esquecer o modo "normal". Uau. Na verdade, a mode()função no vim pode retornar 18 valores distintos.
Benoit
Conforme mencionado por Benoit, esta resposta usa confusamente o termo "modo de comando" para se referir ao que a documentação do vim chama de "modo normal". Os documentos do vim consideram o modo de comando como o que você digita pressionando :no modo normal. Se você acertar esc, você volta ao modo normal. -1 por enganar as pessoas que tentam aprender a terminologia padrão (e, consequentemente, conseguir entender o sistema de ajuda).
intuited 04/04
6
Qualquer pessoa pode sugerir edições, o que provavelmente será mais útil a longo prazo do que um voto negativo e um bom conselho que se esconde nos comentários.
Michael Martin-Smucker
Obrigado pela informação, ela também deve ser exibida em algum lugar no VIM para que você possa saber ... é tão ridículo pesquisar na internet.
shridutt kothari
14

Primeiro, pressione a escapetecla 1 1

Em seguida, basta digitar ZZ(são dois Z maiúsculos seguidos).
Ou digite :x. Qualquer um salvará as edições e sairá.
Você também pode usar:wq

Como alternativa, você pode digitar :q (também conhecido como " sair, por favor "). Isso será encerrado apenas se você não tiver feito edições.

Se você fez edições e deseja descartá-las e sair, digite :q!(também conhecido como " encerrar, droga !")

1 : Isso garante que você esteja no modo "comando". O que você deseja para digitar comandos, como os necessários para sair.

belacqua
fonte
4

Para nossa inconveniência, não existe um método geral para sair de programas de linha de comando, como existe o botão "X" para programas gráficos.

Muitos programas de linha de comando seguem o tema de usar Q(por exemplo, mane top) ou Ctrl+ C(por exemplo, pinge watch) para sair, mas isso varia consideravelmente, especialmente entre os editores de texto:

  • O Vim, em particular, usa a obscura combinação de :q!então Enter, geralmente precedida por várias prensas de Escboa medida.
  • Emacs , outra jóia, prefere Ctrl+ Xseguido por Ctrl+ C.

Editores como esse são armadilhas para os inexperientes. Minha preferência e recomendação pessoal é que, quando forçado a editar o texto na linha de comando, use o Joe's Own Editor (JOE), mais auto-explicativo .

ændrük
fonte
4
Na verdade, eu argumentaria que nanoé um editor de texto de console auto-explicativo muito mais universal.
jondavidjohn
@jondavidjohn Sua disputa é discutível. Concordo que o nano é inquestionavelmente mais universal e não afirmo que seja menos autoexplicativo do que o JOE. Minha preferência pelo JOE se deve ao seu conjunto de recursos expandidos , e minha recomendação a usuários inexperientes é influenciada por sutilezas, como o uso do termo Salvar no lugar do WriteOut arcaico .
ændrük
Geralmente você pode usar ^ Z para suspender o processo. Então você pode matá-lo, ignorá-lo, colocá-lo em segundo plano ou trazê-lo de volta. (mate% 1 ou mate% x, bg, fg). De qualquer maneira, existe alguma unidade de controle do trabalho.
22411 belacqua
3

Juntamente com a resposta de jondavidjohn, aqui estão dois links que contêm informações indispensáveis ​​sobre o uso do vim.

  1. Este é um gráfico do teclado que mostra o que cada tecla faz, dependendo se você estiver no modo de edição, modo de comando ou modo visual:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. Este é o melhor tutorial sobre vim que eu já trabalhei. É conversacional e fácil de entender, devido ao formato de IRC / mensagens instantâneas.

    http://www.vi-improved.org/tutorial.php

Finalmente, existem alguns como o Aendruk que simplesmente não querem usar editores avançados de texto de linha de comando. O Vim, em particular, possui uma curva de aprendizado acentuada e, na verdade, requer algum esforço inicial para se acostumar. Mas é muito rápido e muito poderoso. Se você tem interesse no Linux além do uso básico da área de trabalho, vale a pena investir tempo aprendendo um editor de texto de linha de comando decente, como o Vim ou o Emacs. Se você precisar editar algum texto e não se importar muito além disso, tente digitar gedit filename.txt. Ele lançará um programa gráfico familiar, bem como o Notepad do Windows.

djeikyb
fonte
@djeikyb: Compreendo que você faça a distinção entre o uso básico da área de trabalho e a edição avançada de texto da linha de comando. A força do Ubuntu em relação a outras distribuições Linux está em sua capacidade de tornar o desktop Linux acessível aos usuários comuns de computadores, a quem, para seu crédito, agora estão cada vez mais permeados pelo luxo exclusivo de nunca precisar saber o que são os editores como o Vim.
ændrük
... É com essa liberdade especial em mente que tomo a decisão de trabalhar tão acima dos métodos tradicionais de linha de comando do Linux quanto tenho paciência durante o uso diário do computador. Esforço-me por utilizar apenas ferramentas simples e acessíveis, em grande parte porque posso me permitir . Seria impreciso dizer que eu simplesmente não gosto de editores de texto de linha de comando. Pelo contrário, gosto muito do Vim com seu plug-in VimOutliner e sou grato por sua influência no projeto Vimperator / Pentadactyl.
ændrük
... No entanto, vejo meu uso pessoal dessas ferramentas como um desvio do uso típico do computador. Sou da opinião de que seria um desenvolvimento saudável para a comunidade Ubuntu sugerir menos aos recém-chegados que o uso casual de ferramentas avançadas com curvas acentuadas de aprendizado é a norma entre os usuários comuns.
ændrük
@Letseatlunch, se seu objetivo é tornar-se proficiente no Vim, então por todos os meios eu o encorajo a continuar sua busca. Quero apenas comunicar que, embora, o mais importante, o Ubuntu ofereça muitas dessas ferramentas avançadas que outros sistemas operacionais não possuem, aprender a usá-las nunca deve ser um requisito para o uso do Ubuntu.
ændrük
Ótimo esclarecimento! Vou editar minha resposta para refletir melhor isso. Além disso, eu especificamente recomendei o gedit sobre o nano porque o gedit é de nível superior com uma GUI familiar e porque o nano foi ridiculamente confuso para mim no início (o que significa o símbolo de sinal de intercalação? Como faço para sair? Como faço para salvar?) . O que é engraçado agora, considerando que o vim é meu editor de escolha.
58568 Dreikyb
2

se Esc :q!não funcionar,

tente primeiro Ctrl+ q(para desbloquear a tela bloqueada com Ctrl+ s)

tente novamente Esc :q!(sair sem salvar) ou Esc :wq(para salvar e sair)

Gael P
fonte
0

Deseja sair sem salvar:

  1. Acertar ESC
  2. Acertar ZQ

Sair com salvar:

  1. Acertar ESC
  2. Acertar ZZ
Zoltan
fonte