Estoy atrapado y no puedo escapar. Dice:
"type :quit<Enter> to quit VIM"
Pero cuando escribo eso simplemente aparece en el cuerpo del objeto.
Presione la Esctecla para ingresar al "Modo normal". Luego puede escribir :
para ingresar al "Modo de línea de comandos". Aparecerán dos puntos ( :
) en la parte inferior de la pantalla y puede escribir uno de los siguientes comandos. Para ejecutar un comando, presione la Entertecla.
:q
para dejar de fumar (abreviatura de :quit
):q!
salir sin guardar (abreviatura de :quit!
):wq
escribir y dejar de fumar:wq!
escribir y salir incluso si el archivo solo tiene permiso de lectura (si el archivo no tiene permiso de escritura: forzar escritura):x
escribir y salir (similar a :wq
, pero solo escribir si hay cambios):exit
escribir y salir (igual que :x
):qa
para dejar todo (abreviatura de :quitall
):cq
salir sin guardar y hacer que Vim devuelva un error distinto de cero (es decir, salir con error)También puede salir de Vim directamente desde el "Modo normal" escribiendo ZZ
para guardar y salir (igual que :x
) o ZQ
simplemente para salir (igual que :q!
). (Tenga en cuenta que el caso es importante aquí ZZ
y zz
no significa lo mismo).
Vim tiene una amplia ayuda, a la que puede acceder con el :help
comando, donde puede encontrar respuestas a todas sus preguntas y un tutorial para principiantes.
:x
== ZZ
pero :x
! = :wq
. :x
escribir archivo si el archivo ha cambiado, :wq
escribir archivo siempre (es decir, cuando se usa inotify
).
:w ! sudo tee %
Las imágenes valen más que mil comandos y opciones de Unix:
Dibujo esto a mis alumnos cada semestre y parecen entender vi después.
vi es una máquina de estados finitos con solo tres estados.
Al comenzar, vi entra en el modo COMANDO, donde puede escribir comandos cortos de pocos caracteres, a ciegas . Sabes lo que estas haciendo; Esto no es para aficionados.
Cuando realmente desee editar texto, debe ir al modo INSERTAR con algún comando de un carácter:
Ahora, respondiendo a la pregunta: salir.
Puede salir de vi desde el modo EX:
w
y x
acepte un parámetro de nombre de archivo. Si comenzó a vi con un nombre de archivo, no necesita volver a ingresarlo aquí.
Por último, lo más importante: ¿cómo puede llegar al modo EX?
El modo EX es para comandos largos que puede ver escribiendo en la línea inferior de la pantalla. Desde el modo COMANDO, presiona dos puntos, :
y aparecerá dos puntos en la línea inferior, donde puede escribir los comandos anteriores.
Desde el modo INSERTAR, debe presionar ESC, es decir, el botón Escape, ir al modo COMANDO y luego: ir al modo EX.
Si no está seguro, presione ESC y eso lo llevará al modo de comando.
Entonces, el método robusto es ESC -: - x-Enter que guarda su archivo y se cierra.
w
no cambia del modo Ex al Comando, pero Esc
sí. ¿Qué estoy haciendo mal?
:w
. Entonces tiene mucho sentido. Por cierto, ¿hay un comando para recargar desde el disco (es decir, para revertir los cambios pero no cerrar el archivo)? Si es así, podría estar al lado w
del diagrama.
:e
(o más probable :e!
ya que le advertirá sobre los cambios no guardados sin el !
)
Antes de ingresar un comando, presione la Esctecla . Después de ingresarlo, presione Returnpara confirmar.
Escfinaliza el comando actual y cambia Vim al modo normal . Ahora, si presiona :, :
aparecerá en la parte inferior de la pantalla. Esto confirma que en realidad está escribiendo un comando y no está editando el archivo.
La mayoría de los comandos tienen abreviaturas, la parte opcional entre paréntesis: c[ommand]
.
Los comandos marcados con '*' son solo Vim (no implementado en Vi).
Safe-quit (falla si hay cambios sin guardar):
:q[uit]
Salir de la ventana actual . Salga de Vim si esta es la última ventana. Esto falla cuando se han realizado cambios en el búfer actual .:qa[ll]
* Salga de todas las ventanas y Vim, a menos que haya algunos buffers que se hayan cambiado.Preguntar-salir (pregunta si hay cambios no guardados)
:conf[irm] q[uit]
* Salga, pero avise cuando haya algunos buffers que han sido cambiados.:conf[irm] xa[ll]
* Escriba todos los buffers modificados y salga de Vim. Aparece un mensaje cuando no se pueden escribir algunos buffers.Escriba (guarde) los cambios y salga:
:wq
Escriba el archivo actual (incluso si no se modificó) y salga. La escritura falla cuando el archivo es de solo lectura o el búfer no tiene nombre. :wqa[ll]
* para todas las ventanas.:wq!
Lo mismo, pero escribe incluso archivos de solo lectura. :wqa[ll]!
* para todas las ventanas.:x[it]
, ZZ
(con detalles ). Escriba el archivo solo si se modificó y salga, :xa[ll]
* para todas las ventanas.Descarte los cambios y salga:
:q[uit]!
ZQ
* Salga sin escribir, también cuando los buffers visibles tengan cambios. No sale cuando se cambian los buffers ocultos.:qa[ll]!
*, :quita[ll][!]
* Salga de Vim, se pierden todos los cambios en los búferes (incluidos los ocultos).Presione Returnpara confirmar el comando.
Esta respuesta no hace referencia a todos los comandos y argumentos de escritura y salida de Vim. De hecho, se mencionan en la documentación de Vim .
Vim tiene una amplia ayuda incorporada, escriba Esc:help
Returnpara abrirla.
Esta respuesta fue inspirada por la otra , escrita originalmente por @dirvine y editada por otros usuarios de SO. He incluido más información de la referencia de Vim, comentarios SO y algunas otras fuentes. Las diferencias para Vi y Vim también se reflejan.
Si desea salir sin guardar en Vim y hacer que Vim devuelva un código de salida distinto de cero, puede usarlo :cq
.
Lo uso todo el tiempo porque no me molesto en cambiar de meñique !
. A menudo canalizo cosas a Vim que no necesitan guardarse en un archivo. También tenemos un contenedor SVN extraño en el trabajo que debe salir con un valor distinto de cero para abortar un registro.
:q!
funciona bien, ya que git está buscando un mensaje no vacío y no un código de salida distinto de cero.
Esto es para el peor de los casos de salir de Vim si solo quiere salir, no tiene idea de lo que ha hecho y no le importa lo que sucederá con los archivos que abrió.
Ctrl-cEnterEntervi
EnterCtrl-\Ctrl-n:qa!
Enter
Esto debería sacarte la mayor parte del tiempo.
Algunos casos interesantes donde necesitas algo como esto:
i
Ctrl-ovg
(ingresa al modo de inserción, luego al modo visual y luego al modo pendiente del operador)
Qappend
Enter
i
Ctrl-ogQ
Ctrl-r=
Ctrl-k (gracias a porges por este caso)
:set insertmode
(este es un caso cuando Ctrl-\Ctrl-nvuelve al modo normal)
Editar: esta respuesta se corrigió debido a los casos anteriores. Solía ser:
EscEscEsc:qa!
Enter
Sin embargo, eso no funciona si ha ingresado al modo Ex. En ese caso, deberías hacer:
vi
Enter:qa!
Enter
Entonces, un comando completo para "No quiero saber lo que he hecho y no quiero guardar nada, ¡solo quiero salir ahora!" sería
vi
EnterEscEscEsc:qa!
Entrar
:q
o:wq
i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>
?
En caso de que necesite salir de Vim en modo fácil (mientras usa la -y
opción), puede ingresar al modo normal de Vim presionando Ctrl+ Ly luego cualquiera de las opciones de salida normales funcionará.
Ctrl+O
para salir temporalmente del modo INSERTAR y luego ingresar :q
. El truco con esta combinación también es útil en vim normal para ejecutar un solo comando y volver al modo INSERTAR.
Vim tiene tres modos de operación: modo de entrada, modo de comando y modo Ex.
Modo de entrada : todo lo que escribe, todas las pulsaciones de teclas se repiten en la pantalla.
Modo de comando o modo de escape : todo lo que escribe en este modo se interpreta como un comando.
Modo Ex : este es otro editor, ex. Es un editor de línea. Funciona por línea o en base a un rango de líneas. En este modo, :aparece un en la parte inferior de la pantalla. Este es el ex editor.
Para salir de Vim, puede salir mientras está en modo ex o en modo comando. No puede salir de Vim cuando está en modo de entrada.
Salir del modo ex
Debe asegurarse de estar en el modo Comando. Para hacer eso, simplemente presione la Esctecla.
Vaya al modo ex presionando la :tecla
Utilice cualquiera de las siguientes combinaciones en modo ex para salir:
:q
- salir
:q!
- salir sin guardar
:wq
- guardar y salir o escribir y salir
:wq!
- igual que wq, pero forzar la escritura en caso de que los permisos de los archivos sean de solo lectura
:x
- escribir y salir
:qa
- salir de todo. útil cuando se abren varios archivos como:vim abc.txt xyz.txt
Salir del modo comando
Presione la tecla de escape. Probablemente ya lo haya hecho si está en modo comando.
Presione mayúscula ZZ ( shift zz
) - guardar y salir
Presione mayúscula ZQ ( shift zq
) - salga sin guardar.
Después de presionar ESC(o cmd+ Cen mi computadora) debe presionar :para que aparezca el símbolo del sistema. Entonces, puedes ingresar quit
.
Es posible que la máquina no le permita salir porque su información no se ha guardado. Si de todos modos desea dejar de fumar, ingrese !directamente después de dejar de fumar (es decir :quit!
).
Obtuve Vim instalando un cliente Git en Windows. :q
No saldría de Vim por mí. :exit
hizo sin embargo ...
vim -version
7.3).
Git Bash
Windows, a Vim
veces ESC
no funciona. use CTRL
+ en su [
lugar.
^[
es lo mismo que ESC
. Es interesante que Windows lo haga más complicado. Y divertido
La pregunta se ha hecho aquí .
El q
comando con un número cierra la división dada en esa posición.
:q<split position>
o :<split position>q
cerrará la división en esa posición.
Digamos que el diseño de la ventana de Vim es el siguiente:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
Si ejecuta el q1
comando, cerrará la primera división. q2
cerrará la segunda división y viceversa.
El orden de la posición dividida en el comando salir no importa. :2q
o :q2
cerrará la segunda división.
Si la posición de división que pasa al comando es mayor que el número de divisiones actuales, simplemente cerrará la última división.
Por ejemplo, si ejecuta la q100
configuración de la ventana anterior donde solo hay tres divisiones, cerrará la última división (División 3).
:quit
y luego presionar la[ENTER]
tecla.git commit
enviarte a vim en el futuro:git config --global core.editor="nano"