¿Cómo cerrar vim desde la línea de comando?

46

Sé que esto es más una pregunta general de Linux pero w / e. Entonces, cuando ingreso un programa como vim en el símbolo del sistema, muestra todo el texto en el archivo y puedo editarlo, etc. Pero no puedo encontrar la manera de cerrar o guardar el archivo y volver al símbolo del sistema sin matarlo el proceso. Cualquier ayuda es apreciada.

Vamos a comer almuerzo
fuente

Respuestas:

72

En vim hay 3 modos diferentes:

  • Insertar: permite escribir y editar normalmente
  • Visual: se utiliza para seleccionar copiar / pegar, etc.
  • Normal: se usa para comandos

Para volver al modo Normal, siempre puede presionar esc.

Una vez que esté en modo Normal Presione :para comenzar su comando (verá que aparece en la parte inferior izquierda). Los siguientes comandos están relacionados con salir de vim:

  • :q - dejar de fumar si no se hicieron cambios
  • :q! - Salga y destruya cualquier cambio realizado
  • :wq - escribir cambios (guardar) y salir
  • :x- similar a :wq, solo escriba el archivo si se hicieron cambios, luego salga
jondavidjohn
fuente
44
y :xes un atajo para:wq
Ward Muylaert
2
Usted simplemente olvidado el modo “normal”. Guau. En realidad, la mode()función en vim puede devolver 18 valores distintos.
Benoit
Como aludió Benoit, esta respuesta usa confusamente el término "modo de comando" para referirse a lo que la documentación de vim llama "modo normal". Los documentos vim consideran que el modo de comando es lo que ingresas presionando :en modo normal. Si golpeas esc, vuelves al modo normal. -1 por ser engañoso con las personas que intentan aprender la terminología estándar (y, por consiguiente, poder dar sentido al sistema de ayuda).
intuido
66
@intuited Cualquiera puede sugerir ediciones, lo que probablemente será más útil a largo plazo que un voto negativo y un buen consejo que queda oculto en los comentarios.
Michael Martin-Smucker
Gracias por la información, también debería mostrarse en algún lugar de VIM para que uno pueda saber ... es tan ridículo buscarlo en Internet.
shridutt kothari
14

Primero, presiona la escapetecla. 1

Luego simplemente escriba ZZ(eso es dos Z mayúsculas seguidas).
O escriba :x. Cualquiera guardará las ediciones y se irá.
También puedes usar:wq

Alternativamente, puede escribir :q (también conocido como " salir, por favor "). Esto saldrá solo si no ha realizado modificaciones.

Si ha realizado ediciones y desea descartarlas y salir, escriba :q!(también conocido como " salir, ¡maldición !")

1 : Esto asegura que está en modo "comando". Que desea para escribir comandos, como los necesarios para salir.

belacqua
fuente
4

Para nuestro inconveniente, no existe un método general para salir de los programas de línea de comandos, como el botón "X" para los programas gráficos.

Muchos programas de línea de comandos siguen el tema del uso de Q(por ejemplo, many top) o Ctrl+ C(por ejemplo, pingy watch) para salir, pero esto varía considerablemente, especialmente entre los editores de texto:

  • Vim en particular usa la combinación oscura de :q!entonces Enter, generalmente precedida por varias prensas de Escbuena medida.
  • Emacs , otra gema, prefiere Ctrl+ Xseguido de Ctrl+ C.

Editores como este son trampas para los inexpertos. Mi preferencia y recomendación personal es que, cuando me vean obligado a editar texto en la línea de comandos, use en su lugar el editor propio de Joe (JOE), que se explica por sí mismo .

ændrük
fuente
44
De hecho, diría que nanoes un editor de texto de consola mucho más universal que se explica por sí mismo.
jondavidjohn
@jondavidjohn Su contención es discutible. Estoy de acuerdo en que nano es, sin duda, más universal, y no pretendo que se explique menos que JOE. Mi preferencia por JOE se debe a su conjunto de características ampliado , y mi recomendación para usuarios inexpertos está influenciada por sutilezas como el uso del término Guardar en lugar de WriteOut arcaico .
ændrük
Generalmente puede usar ^ Z para suspender el proceso. Luego puedes matarlo, ignorarlo, ponerlo en segundo plano o traerlo de vuelta. (kill% 1 o kill% x, bg, fg). Hay alguna unidad de control de trabajo, de todos modos.
belacqua
3

Junto con la respuesta de jondavidjohn, aquí hay dos enlaces que tienen información indispensable sobre el uso de vim.

  1. Este es un gráfico de teclado que muestra lo que hace cada tecla dependiendo de si está en modo de edición, modo de comando o modo visual:

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

  2. Este es el mejor tutorial de vim que he trabajado. Es conversacional y fácil de entender, debido a su formato IRC / mensajería instantánea.

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

Finalmente, hay algunos como aendruk que simplemente no quieren usar editores de texto de línea de comando avanzados. Vim en particular tiene una curva de aprendizaje empinada, y en realidad requiere un esfuerzo inicial para acostumbrarse. Pero es muy rápido y muy poderoso. Si tiene interés en Linux más allá del uso básico del escritorio, vale la pena invertir tiempo aprendiendo un editor de texto de línea de comandos decente como Vim o Emacs. Si solo necesita editar algo de texto y no le importa mucho más, intente escribir en su gedit filename.txtlugar. Lanzará un programa gráfico familiar, muy parecido al Bloc de notas de Windows.

djeikyb
fuente
@djeikyb: agradezco que distingas entre el uso básico de escritorio y la edición avanzada de texto de línea de comandos. La fortaleza de Ubuntu sobre otras distribuciones de Linux radica en su capacidad de hacer que los usuarios de computadoras de todos los días puedan acceder al escritorio de Linux, a quienes se les atribuye cada vez más el lujo único de nunca necesitar saber qué editores como Vim son.
ændrük
... Con esta libertad especial en mente, tomo la decisión de trabajar tan por encima de los métodos tradicionales de línea de comandos de Linux como tengo paciencia durante el uso diario de la computadora. Hago el esfuerzo de utilizar solo herramientas simples y accesibles, en gran medida porque me lo puedo permitir . Sería inexacto decir que simplemente no me gustan los editores de texto de línea de comandos. Por el contrario, soy aficionado a Vim con su complemento VimOutliner, y estoy en deuda con él por su influencia en el proyecto Vimperator / Pentadactyl.
ændrük
... Sin embargo, veo mi uso personal de estas herramientas como una desviación del uso típico de la computadora. Soy de la opinión de que sería un desarrollo saludable para la comunidad de Ubuntu sugerir con menos facilidad a los recién llegados que el uso casual de herramientas avanzadas con curvas de aprendizaje pronunciadas es la norma entre los usuarios cotidianos.
ændrük
@Letseatlunch, si tu objetivo es convertirte en experto en Vim, entonces, por supuesto, te animo a que continúes persiguiéndolo. Solo quiero comunicar que, aunque, lo que es más importante, Ubuntu ofrece muchas herramientas avanzadas que otros sistemas operativos carecen por completo, aprender a usarlas nunca debería ser un requisito para usar Ubuntu.
ændrük
Gran aclaración! Editaré mi respuesta para reflejar mejor esto. Además, recomendé específicamente gedit sobre nano porque gedit es de nivel superior con una interfaz gráfica de usuario familiar, y porque nano era ridículamente confuso para mí al principio (¿qué significa el símbolo de intercalación? ¿Cómo renuncio? ¿Cómo ahorro?) . Lo cual es divertido ahora, considerando que vim es mi editor de elección.
djeikyb
2

si Esc :q!no funciona

intente primero Ctrl+ q(para desbloquear la pantalla que estaba bloqueada con Ctrl+ s)

luego vuelva Esc :q!a intentarlo (para salir sin guardar) o Esc :wq(para guardar y salir)

Gael P
fuente
0

Quiere salir sin guardar:

  1. Golpear ESC
  2. Golpear ZQ

Salir con guardar:

  1. Golpear ESC
  2. Golpear ZZ
Zoltan
fuente